始める無料で始める

エルボー法

前の演習では、クラスター数を8にして MiniBatch K-means を実装しましたが、適切なクラスター数を実際には確認していませんでした。最初の不正検知アプローチでは、特にクラスターの外れ値を不正の予測として使いたい場合、クラスター数を適切に設定することが重要です。どのクラスター数を使うか決めるために、エルボー法を適用して、この方法に基づく最適なクラスター数を確認してみましょう。

X_scaled は引き続き利用でき、MiniBatchKMeanssklearn からインポート済みです。

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

Pythonで学ぶ不正検知

コースを見る

演習の手順

  • クラスター数の範囲を 1〜5 に設定します。
  • リスト内包表記を使って、その範囲内のすべてのクラスター数で MiniBatch K-means を実行します。
  • 各モデルをスケーリング済みデータに対して学習し、同じデータからスコアを取得します。
  • クラスター数とそれぞれのスコアをプロットします。実行に数秒かかります。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define the range of clusters to try
clustno = range(____, ____)

# Run MiniBatch Kmeans over the number of clusters
kmeans = [____(n_clusters=i, random_state=0) for ____ in ____]

# Obtain the score for each model
score = [kmeans[i].fit(____).score(____) for i in range(len(kmeans))]

# Plot the models and their respective score 
plt.plot(____, ____)
plt.xlabel('Number of Clusters')
plt.ylabel('Score')
plt.title('Elbow Curve')
plt.show()
コードを編集して実行