正規曲線
CoddyのMachine Learningジャーニー「機械学習のための統計」セクションの一部。レッスン 9/64。
身長、試験の点数、米袋:多くの測定値は正規分布、つまり釣鐘型の曲線に従って集まります。1台の機械で作られた500袋の場合:
2つの数値で形が決まります。平均値がピークの位置を決め、標準偏差が幅を決めます。科学計算ライブラリのSciPyには、数式が用意されています。
from scipy import stats
ax.hist(bags, bins=16, density=True)
xs = np.linspace(bags.min(), bags.max(), 100)
ax.plot(xs, stats.norm.pdf(xs, bags.mean(), bags.std()))stats.norm.pdf(x, mean, std)は、xにおける曲線の高さを表し、xは単一の値または配列です。その面積は密度ヒストグラムと同じく1なので、両方を同じグラフに表示できます。
一部のモデルは、おおむね正規分布に従う特徴量を好みます。このグラフはそれを確認します。
チャレンジ
簡単ボルトの長さは50 mmである必要があります。スターターコードでは、測定した長さ240個をlengthsに格納し、グラフを設定しています。正規曲線と比較しましょう。
- 以下のように、平均と標準偏差(
np.std)を小数点以下2桁に丸めて出力します。 bins=15で密度ヒストグラムを描きます。- 当てはめた曲線をその上に描きます。最も短いボルトから最も長いボルトまでの100点を使います。
- グラフを表示します。
別のバッチの場合:
Fitted curve: mean 49.99 mm, std 0.42 mmグラフ:
自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
# 以下の行は変更しないでください
rng = np.random.default_rng(31)
lengths = np.round(rng.normal(50, 0.4, size=240), 2)
fig, ax = plt.subplots()
ax.set_title("Bolt Lengths")
ax.set_xlabel("Length (mm)")
ax.set_ylabel("Density")
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
機械学習のための統計のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ