k 平均法の長所と短所

K 平均法の利点

比較的導入が簡単。

大規模なデータセットへのスケーリング。

収束を保証する。

セントロイドの位置をウォーム スタートできます。

新しい例に簡単に対応。

楕円クラスタなど、さまざまな形状やサイズのクラスタを一般化します。

K 平均法の一般化

クラスタの密度とサイズが異なる場合はどうなりますか?図 1 をご覧ください。左側の直感的なクラスタと、右側で実際に K 平均法によって検出されたクラスタを比較します。比較では、K 平均法がどのように特定のデータセットを検出したのかがわかります。

2 つのグラフを並べて表示。1 つ目は、やや明瞭なクラスタを含むデータセットです。2 つ目は、K 平均法を適用した後の例の奇数グループ化を示しています。
図 1: 一般化されていない K 平均法の例。

図 1 のような不均衡なクラスタをクラスタ化するには、K 平均法を適応(一般化)します。図 2 では、k 平均法を一般化した後のクラスタの境界を以下のように示しています。

  • 左のプロット: 一般化がないため、クラスタ境界が非直感的になります。
  • 中央プロット: クラスタの幅を変えられるため、より直感的に異なるサイズのクラスタを作成できます。
  • 右プロット: クラスタ幅以外に、ディメンションごとに異なる幅を許可すると、球面クラスタではなく楕円クラスタになり、結果が向上します。
2 つのグラフを並べて表示。1 つ目の球体クラスタの例と 2 つ目の球面クラスタの例ではありません。
図 2: 球面クラスタの例と非球面クラスタの例。

このコースでは、K 平均法の一般化方法については説明しませんが、K 平均法の修正のしやすさが、パワフルであるもう 1 つの理由であることに留意してください。K 平均法の一般化については、カーネギー メロン大学の Carlos Guestrin による クラスタリング- K 平均法ガウス混合モデルをご覧ください。

K 平均法のデメリット

手動で \(k\) 選択する。

「損失とクラスタ」のプロットを使用して、結果を解釈するで説明されているように、最適な(k)を見つけます。

初期値に依存している。

\(k\)が低い場合は、初期値が異なる K 平均法を複数回実行し、最適な結果を選択することで、この依存関係を軽減できます。 \(k\)が増加するにつれ、初期セントロイドの値をより適切に取得するため、k 平均法の高度なバージョンが必要になります(平均法シードといいます)。K 平均法シードの詳細については、K 平均法クラスタリング アルゴリズムの効率的な初期化方法の比較研究をご覧ください。Emre Celebi、Hassan A. Kingravi、Patricio A. Vela、

サイズや密度の異なるデータをクラスタリングする。

K 平均法では、クラスタのサイズと密度がクラスタごとに異なります。このようなデータをクラスタ化するには、利点で説明されているように、K 平均法を一般化する必要があります。

クラスタリングの外れ値。

セントロイドは外れ値によってドラッグされる場合や、外れ値を無視されることなく独自のクラスタを取得する場合があります。クラスタリングの前に外れ値を削除またはクリッピングすることを検討してください。

ディメンション数に応じたスケーリング

ディメンションの数が増えると、距離ベースの類似度メジャーは任意のサンプル間で一定の値に収束します。次元数を減らすには、特徴データに PCA を使用するか、以下で説明するように「スペクトル クラスタリング」を使用してクラスタリング アルゴリズムを変更します。

次元性の厳密さとスペクトル クラスタリング

これらのプロットは、次元数が増えるにつれて、サンプル間の距離の平均に対する標準偏差の比率がどのように低下するかを示しています。この収束は、K 平均法がサンプルの識別に効果的ではなくなることを意味します。この高次元データの悪影響は、次元の厳格と呼ばれます。

次元数が増えるにつれてサンプル間の距離の標準偏差がどのように減少するかを示す 3 つのプロット
図 3: 次元性の悪意のデモンストレーション。各プロットは、ランダムな 200 個の地点のペア間の距離を示しています。

スペクトル クラスタリングは、アルゴリズムに事前クラスタリングのステップを追加することで、次元の厳しさを防ぎます。

  1. PCA を使用して特徴データの次元数を減らす。
  2. すべてのデータポイントを低次元サブスペースに投影します。
  3. 選択したアルゴリズムを使用して、このサブスペース内のデータをクラスタ化します。

したがって、スペクトル クラスタリングは個別のクラスタリング アルゴリズムではなく、任意のクラスタリング アルゴリズムで使用できる事前クラスタリングのステップです。スペクトル クラスタリングの詳細は複雑です。Ulrike von Luxburg による A Tutorial on Spectral Clustering をご覧ください。