エルボー法
前の演習では、クラスター数を8にして MiniBatch K-means を実装しましたが、適切なクラスター数を実際には確認していませんでした。最初の不正検知アプローチでは、特にクラスターの外れ値を不正の予測として使いたい場合、クラスター数を適切に設定することが重要です。どのクラスター数を使うか決めるために、エルボー法を適用して、この方法に基づく最適なクラスター数を確認してみましょう。
X_scaled は引き続き利用でき、MiniBatchKMeans は sklearn からインポート済みです。
この演習はコースの一部です
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()