最適なクラスター数を見つける
ここでは、誤差二乗和(SSE)の減少が小さくなる地点を見つけるために、elbow(ひじ)法を使って最適なクラスター数を特定します。これは、テストを始める際の妥当なクラスター数を数学的に見積もるうえで重要なステップです。複数の k(クラスター数)について KMeans を実行し、各 k に対する誤差をプロットして、減少が緩やかになる「ひじ」の位置を見極めます。
KMeans は sklearn.cluster から読み込まれており、seaborn は sns、matplotlib.pyplot は plt として読み込まれています。スケーリング済みのデータセットは、pandas の DataFrame として wholesale_scaled_df に読み込まれています。
この演習はコースの一部です
Pythonで学ぶマーケティングのための機械学習
演習の手順
- 空の
sse辞書を作成します。 - k を 1 から 11 の範囲で変化させて
KMeansを学習し、誤差をsse辞書に保存します。 - プロットにタイトルを追加します。
- X 軸にキー、Y 軸に値をとる散布図を作成し、チャートを表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create empty sse dictionary
sse = {}
# Fit KMeans algorithm on k values between 1 and 11
for k in ___(1, 11):
kmeans = ___(n_clusters=___, random_state=333)
kmeans.___(wholesale_scaled_df)
sse[k] = kmeans.inertia_
# Add the title to the plot
plt.___('Elbow criterion method chart')
# Create and display a scatter plot
sns.pointplot(x=list(sse.___()), y=list(sse.___()))
plt.___()