始める無料で始める

二乗誤差の合計を計算してプロットする

ここでは、クラスタ数を 1 から 10 まで変えながら、二乗誤差の合計(sum of squared errors)を計算します。

前の演習で作成した正規化済みの RFMT データ datamart_rfmt_normalized を使います。scikit-learn からは KMeans モジュールがインポート済みです。また、二乗誤差の合計を保存するための空の辞書 sse = {} を用意しています。

コンソールでデータを自由に確認してかまいません。

この演習はコースの一部です

Pythonで学ぶカスタマーセグメンテーション

コースを見る

演習の手順

  • KMeans を k クラスタ、random_state=1 で初期化し、正規化済みデータセットにフィットさせます。
  • 二乗距離の合計を、辞書 ssek 要素に代入します。
  • プロットのタイトルを "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()
コードを編集して実行