二乗誤差の合計を計算してプロットする
ここでは、クラスタ数を 1 から 10 まで変えながら、二乗誤差の合計(sum of squared errors)を計算します。
前の演習で作成した正規化済みの RFMT データ datamart_rfmt_normalized を使います。scikit-learn からは KMeans モジュールがインポート済みです。また、二乗誤差の合計を保存するための空の辞書 sse = {} を用意しています。
コンソールでデータを自由に確認してかまいません。
この演習はコースの一部です
Pythonで学ぶカスタマーセグメンテーション
演習の手順
- KMeans を
kクラスタ、random_state=1 で初期化し、正規化済みデータセットにフィットさせます。 - 二乗距離の合計を、辞書
sseのk要素に代入します。 - プロットのタイトルを "The Elbow Method"、X 軸ラベルを "k"、Y 軸ラベルを "SSE" に設定します。
- 辞書にキーとして格納されている各
kに対する SSE の値をプロットします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Fit KMeans and calculate SSE for each k between 1 and 10
for k in range(1, 11):
# Initialize KMeans with k clusters and fit it
kmeans = ____(____=____, ____=1 ).____(datamart_rfmt_normalized)
# Assign sum of squared distances to k element of the sse dictionary
____[____] = kmeans.____
# Add the plot title, x and y axis labels
plt.____('The Elbow Method')
plt.____('____')
plt.____('____')
# Plot SSE values for each k stored as keys in the dictionary
sns.____(x=list(sse.____()), y=list(sse.____()))
plt.show()