クラスタリング:k-meansおよびc-meansアルゴリズム

こんにちは



約束どおり、データマイニングテクノロジに関する一連の出版物を続けています。 今日は、2つのクラスタリングアルゴリズム(k-meansおよびc-means)について説明し、利点と欠点を説明し、それらの使用に関する推奨事項を示します。 さあ行こう...



クラスタリングは、入力ベクトルのセットを互いに「類似性」の度合いに従ってグループ(クラスター)に分割することです。



データマイニングのクラスタリングは、データ分析の段階の1つである場合に価値を獲得し、完全な分析ソリューションを構築します。 多くの場合、アナリストは、すべてのデータに対して1つの共通モデルを作成するよりも、類似するオブジェクトのグループを区別し、機能を調べてグループごとに個別のモデルを作成する方が簡単です。 この手法は、マーケティングで常に使用され、顧客、バイヤー、製品のグループを強調し、それらのそれぞれに対して個別の戦略を開発しています( ウィキペディア )。





距離測定



2つのオブジェクトを比較するには、比較の基準となる基準が必要です。 原則として、そのような基準はオブジェクト間の距離です。



距離には多くの尺度がありますが、そのうちのいくつかを検討してください。



ユークリッド距離は最も一般的な距離です。 多次元空間での幾何学的距離です。



ユークリッド距離の二乗。 場合によっては、標準のユークリッド距離を2乗して、互いに離れているオブジェクトに大きな重みを付けることができます。



都市ブロック距離(マンハッタン距離)。 この距離は、単に座標の差の平均です。 ほとんどの場合、この距離の測定により、通常のユークリッド距離と同じ結果が得られます。 ただし、この測定では、個々の大きな差(放射)の影響は低減されます(二乗されていないため)。



チェビシェフ距離。 この距離は、1つの座標(1つの次元)が異なる2つのオブジェクトを「異なる」ものとして定義する場合に役立ちます。



パワー距離。 対応するオブジェクトが非常に異なる次元に関連する重みを徐々に増加または減少させたい場合があります。 これはべき乗則を使用して実現できます。



距離の選択(類似性基準)は完全に研究者にあります。 異なるメジャーを選択する場合、クラスタリングの結果は大きく異なる可能性があります。



アルゴリズムk-means(k-means)



最も単純ですが、同時に古典的な実装における非常に不正確なクラスタリング方法。 ベクトル空間の要素のセットをクラスターkの所定の数に分割します。 このアルゴリズムは、各クラスターのポイントで標準偏差を最小化しようとするものです。 主なアイデアは、各反復で、前の手順で取得した各クラスターの重心を再計算し、選択したメトリックでどちらの新しい中心が近いかに応じて、ベクトルを再びクラスターに分割することです。 アルゴリズムは、ある反復でクラスターに変化がなくなると終了します。



k-meansアルゴリズムの問​​題:

* クラスターの数を事前に知っておく必要があります。 クラスターの数を決定するための方法を提案しました。これは、ある法則に従って分散されたクラスターを見つけることに基づいています(私の場合、すべて法則に基づいています)。 その後、古典的なk-meansアルゴリズムが実行され、より正確な結果が得られました。

* アルゴリズムは、初期クラスター中心の選択に非常に敏感です。 クラシックバージョンは、多くの場合エラーの原因となるクラスターのランダムな選択を意味します。 解決策として、初期クラスターの中心をより正確に決定するために、オブジェクトの調査を行う必要があります。 私の場合、初期段階では、クラスターの最も遠い点をセントとして取ることが提案されています。

*オブジェクトが異なるクラスターに均等に属するか、いずれにも属さない場合、タスクに対応しません。



関連資料:

* ウィキペディア-K-means

* K-meansの概要

* Matlab Statistics Toolboxのkmeans関数の説明

* K-means-インタラクティブデモ (Java)



ファジーc-meansクラスタリングアルゴリズム



最後のk-means問題は、c-meansアルゴリズムによって正常に処理されます。 オブジェクトが属するクラスターの質問に対する明確な答えの代わりに、オブジェクトが特定のクラスターに属する確率を決定します。 したがって、「オブジェクトAはクラスター1に属し、90%の確率でクラスター2〜10%に属します」というステートメントは真であり、より便利です。



古典的なc-meansの例は、いわゆる 「バタフライ」(バタフライ):



画像



ご覧のように、座標(3.2)を持つポイントは、最初と2番目のクラスターの両方に等しく属します。



c-meansの残りの問題はk-meansの問題と同じですが、パーティションのあいまいさのために平準化されます。



関連リンク:

* アルゴリズムの正式な説明とCでの実装#

* ファジーc-meansクラスタリング

* ファジーC平均クラスター分析



PSアルゴリズムの数学的原理については説明しませんでしたが、提供されているリンクで簡単に見つけることができます。



ご清聴ありがとうございました!



All Articles