正確なクラスタリングを簡単にする方法:kscorerの最適なK-meansクラスタを自動選択するガイド
正確なクラスタリングを簡単にする方法:kscorerの最適なK-meansクラスタを自動選択するガイドを改善する
kscorerはクラスタリングのプロセスを効率化し、高度なスコアリングと並列処理を通じてデータ分析の実用的なアプローチを提供します
非教師あり機械学習、特にクラスタリングは、データサイエンスにおいて難しいタスクです。これは、様々な実際のビジネス分析プロジェクトにおいて重要です。クラスタリングは単独で機能することもできますが、他のアルゴリズムの効率を向上させる複雑なデータ処理パイプラインにおいても価値のある要素です。例えば、クラスタリングはレコメンダーシステムの開発時に重要な役割を果たします。
Scikit-Learnでは、さまざまな確定的クラスタリングアルゴリズムが提供されていますが、その多くはパラメータを設定する必要があり、クラスタの数を決定することはクラスタリングにおける最も重要な課題の一つです。
通常、データを扱う際に最適なクラスタの数を決定するために反復的な方法が使用されます。つまり、異なるクラスタの数でクラスタリングを複数回実行し、それぞれの結果を評価します。この技術は有用ですが、制約もあります。
yellowbrickパッケージは最適なクラスタの数を特定するのに便利なツールですが、いくつかの欠点もあります。特に、複数の指標を評価する際の相反する結果の可能性や、図表上の「ひじ」を特定する課題があります。
また、パッケージに関係なく、データセットのサイズも問題となります。大規模なデータセットを扱う際には、リソースの消費による効率的なクラスタリングの範囲を繰り返し確認する能力が妨げられる場合があります。そのような場合は、並列クラスタリングを提供するMiniBatchKMeansなどのテクニックを試してみることを検討してください。
しかし、クラスタリングルーチンの高度な最適化には、さらに詳しく説明される知られざるテクニックが必要です。また、より堅牢で効率的なクラスタの最適な数を決定する方法を提供するkscorerパッケージも紹介します。
スムーズに進めるために、以下のようなテクニックがあります:
- 次元削減。 クラスタリングアルゴリズムを適用する前にデータに対して主成分分析(PCA)を実施すると、データの干渉を減らし、より信頼性のあるクラスタリングプロセスにつながる場合があります。
- コサイン類似度。 ユークリッド正規化をデータに適用することで、K-meansにおいて(近似的に)コサイン距離を使用する直感的な方法があります。これにより、凝集クラスタリングを実行する際の距離行列の事前計算の必要がなくなります。
- 多くのメトリクス。 単一のメトリクスに頼る代わりに、複数のメトリクス評価に基づいて最適なクラスタの数を見つけるべきです。
- データサンプリング。 リソースの消費問題に対処し、クラスタリングの結果を改善するために、データからランダムサンプルを取得してクラスタリング操作とメトリクス評価を行うことができます。複数の反復からのスコアの平均化は、ランダム性の影響を減らし、より一貫性のある結果を生成することができます。
このワークフローは次のように示されます。
幸いなことに、この完全なパイプラインをゼロから構築する必要はありません。今のところ、kscorerパッケージに実装が存在します。
さて、少し深く探求してみましょう
私はかつて、あるデータサイエンティストがカンファレンスの講演で次のように述べたのを聞きました。「基本的に、やりたいことをやっても構いません、ただし自分がやっていることを理解していることが重要です。」© Alex2006
すべての特徴が均等になり、大きさによる優位性を排除するために、クラスタリングの前にデータをスケーリングすることが推奨されます。 標準化(平均を中心に標準偏差でスケーリング)または Min-Maxスケーリング(値を指定された範囲にスケーリング)は、スケーリングに使用される一般的な技術です。
ここで完璧に説明されているように、特徴のスケーリングの重要性は、K近傍モデルに限定されず、さまざまなデータサイエンス手法にも適用されます。Zスコア正規化による特徴の標準化は、すべての特徴が同じスケールにあることを保証し、特徴の大きさによるモデルの調整の優位性を防ぎます。このスケーリング手順は、非スケーリングデータを使用する場合と比較して、モデルの性能に大きな影響を与えることがあります。
さらに、K平均クラスタリングと PCA の間には、Ding and He の論文「 主成分分析を利用したK平均クラスタリング 」で探索された基本的な関連性があります。最初は異なる目的で使用されますが、これらの技術は最終的にはデータを効率的に表現し、再構成エラーを最小化することを目指しています。PCAは、データベクトルを減少した数の固有ベクトルの組み合わせとして表現することを目指しています。一方、K平均クラスタリングは、データベクトルをクラスタ中心ベクトルの組み合わせとして表現することを目指しています。両方の手法は平均二乗再構成エラーを最小化しようとします。
PCAを適用した後、計算上の問題が生じる可能性があるため、データを再度スケーリングします。一部の値はほぼゼロに近くなる一方、他の値はかなり大きくなる場合があります。これは、PCAの後では初期の特徴が把握できなくなりますので、データの解釈はありません。
一般的には知られていない興味深い相関関係もあります。 コサイン類似度 とユークリッド距離の間には。これらのメジャーが間接的に使用される場合は、これらの尺度の関係を理解することが重要です。この知識は、伝統的なK平均クラスタリングアルゴリズムを球面K平均クラスタリングアルゴリズムに変換する際に、重要なクラスタリングデータの指標となるコサイン類似度です。先にも述べたように、データにユークリッド正規化を適用することで、コサイン類似度とユークリッド距離の関連を「確立」することができます。
クラスタラベルの正解がない場合、クラスタリングモデルの評価は内在的な指標に依存しなければなりません。 kscorerパッケージ は、クラスタリングの品質を評価するための包括的な指標セットを提供します。これらの指標は、認識されたクラスタ間の分離度に対する貴重な洞察を提供します:
- シルエット係数。データポイントごとに、所属していない最も近いクラスタへの平均距離とクラスタ内の平均距離の差を計算し、それらを比較することで、クラスタ間の分離度を定量化します。結果は標準化され、二つの値の比率として表され、高い値は優れたクラスタ分離を示します。
- Calinski-Harabasz指数。クラスタ間散布とクラスタ内散布の比率を計算します。Calinski-Harabaszテストのスコアが高いほど、クラスタリングのパフォーマンスが優れており、明確に定義されたクラスタを示します。
- Davies-Bouldin指数。クラスタ間の広がりとクラスタ内の広がりの比率を測定し、低い値は優れたクラスタリングのパフォーマンスとより明確なクラスタを示します。
- Dunn指数。クラスタ中心点間の最小距離(クラスタ間距離)とクラスタ内の最大距離(クラスタ内距離)を比較することで、クラスタの品質を評価します。Dunn指数が高いほど、より明確なクラスタが存在します。
パッケージで使用されるインデックスのPython計算は次のとおりです:
- ベイズ情報量基準(BIC)。BICは追加の指標であり、ある程度独立したメトリックです。K平均は直接的な確率モデルを提供しないため、BICはK平均モデルを適用した後のデータの分布を推定するのに役立ちます。このアプローチは、クラスタの品質をより包括的に評価する手段となります。
すべての指標は標準化されており、高いスコアは常に明確に定義されたクラスタを示すことが保証されています。この徹底的な評価は、データセット内の最適なクラスタ数を特定する上で非常に重要です。
K-meansクラスタリングのデータ前処理とスコアリング処理を効率的に実行するために、kscorerパッケージはN個の乱数データサンプルを利用しています。このアプローチにより、異なるサイズや構造のデータセットにもシームレスに対応することができます。クロスバリデーション技術と同様に、各反復ではデータの限られた部分集合に焦点を当てているにもかかわらず、堅牢な結果を維持します。
kscorerの使い方
では、クラスタリングに使用するデータがあります。ただし、このシナリオでは正確なクラスタ数を知らないものとしましょう。
次に、データセットをトレーニングセットとテストセットに分割し、モデルを適応させて最適なクラスタ数を検出します。モデルは自動的に3から15の範囲内で最適なクラスタ数を探索します。次のように簡単に実現できます:
適合プロセスが完了したら、すべての適用されたメトリックに対するスケーリングされたスコアを確認することができます。これにより、利用可能なデータに対して最適なクラスタ数を決定するのに役立ちます。プロットを確認すると、いくつかのクラスタが対応するスコアで強調表示されていることに気付くでしょう。これらのラベル付きポイントは、すべてのメトリックの平均スコアの局所的な極大値に対応しており、最適なクラスタ数を選択するための最良のオプションを表しています。
さて、新しいクラスタラベルが実際のラベルとどれだけよく一致するかを評価しましょう。通常、このオプションは実際のビジネスシナリオでは使用できません 😉
クラスタリングでは通常行われない方法として、以前に見たことのないデータをクラスタリングしてみることができます。ただし、これは典型的なクラスタリングタスクではありません。クラスタラベルをターゲットとして使用して分類器を作成すると、新しいデータにクラスタラベルを割り当てるのがより簡単になります。
そして、最後に、データに新たなインタラクティブな視点を加えましょう。
これが、kscorerパッケージを使用してK-meansクラスタリングを探索する方法です。複雑なメトリックと並列処理により、データ分析の実践的なツールとして実証されています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles