標本平均のばらつき
CoddyのMachine Learningジャーニー「機械学習のための統計」セクションの一部。レッスン 20/64。
30個の小包からなる1つの標本で、平均重量を1つ推定できます。もう一度抽出すると、別の推定値が得られます。40個の標本を示します:
これらを集めるには、ループでサンプリングを繰り返し、各平均をリストに追加してから、そのリストを配列にします:
means = []
for i in range(5):
sample = rng.choice(parcels, size=30, replace=False)
means.append(sample.mean())
means = np.array(means)
print(np.round(means, 2))これは次のように出力されます:
[7.98 8.05 8.12 8.19 8.76]標本平均自体もランダムであり、means.std()はその変動の大きさを測定します。モデルのテストスコアもそのような平均の1つです。別のテストセットを使えば、その値は変わるでしょう。
チャレンジ
中級ある苗木園では、園芸家が毎週、1800本の竹から無作為標本を測定します。標本平均は週ごとにどの程度変動するでしょうか?
sample_means(data, size, count)を完成させましょう。dataからsize個の値を含む標本をcount個抽出します。各標本内で同じ値を2回抽出せず、各標本の平均を追加します。スターターコードの最後の行では、この関数を呼び出して結果を出力します。
別の苗木園で、標本のサイズが10の場合:
200 means of 10 plants: 105.25 to 137.13 cm
Spread of the means (std): 5.27 cm自分で試してみよう
import numpy as np
size = int(input())
# 以下の行は変更しないでください:各竹の高さ(cm)
rng = np.random.default_rng(20)
heights = np.round(rng.normal(95, 15, size=1800), 1)
def sample_means(data, size, count):
means = []
# 以下にコードを書いてください:size 個の値からなる標本を count 個作り、それぞれの平均値を保存します
return np.array(means)
# 以下の行は変更しないでください
means = sample_means(heights, size, 200)
print(f"200 means of {size} plants: {np.round(means.min(), 2)} to {np.round(means.max(), 2)} cm")
print(f"Spread of the means (std): {np.round(means.std(), 2)} cm")
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
機械学習のための統計のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ