K-Means(K平均法)は、教師なし学習に分類される代表的なクラスタリング手法です。
あらかじめ指定したクラスタ数 K に基づいて、データを K個のグループ(クラスタ)に分割することを目的としています。
主に数値データを対象とし、データ間の距離を基準として、類似したデータ同士を同じクラスタにまとめるアルゴリズムです。
シンプルな構造を持つため、クラスタリング手法の入門としても広く用いられています。
K-Meansの基本的な考え方
K-Meansでは、各クラスタに 重心(centroid) と呼ばれる代表点を設定します。
アルゴリズム全体の目的は、次の量を最小化することです。
各データ点と、それが属するクラスタの重心との距離の二乗和を最小化すること
この考え方により、
- 同じクラスタ内のデータ点はできるだけ近くに集まり
- 異なるクラスタ同士はできるだけ離れる
ような分割が実現されます。
アルゴリズムの手順
K-Meansは、以下の手順を収束条件を満たすまで繰り返します。
クラスタ数 K を指定します
分析者が事前に、データをいくつのクラスタに分割するかを指定します。
この点はK-Meansの特徴であり、同時に設計上の重要な要素でもあります。
初期重心を設定します
データ空間内に K 個の重心を初期値として配置します。
一般的にはランダムに選択されますが、初期値の違いが結果に影響を与えることがあります。
データ点をクラスタに割り当てます
各データ点について、最も距離が近い重心を持つクラスタに割り当てます。
距離尺度としては、ユークリッド距離が標準的に用いられます。
重心を更新します
各クラスタに属するデータ点の 平均値(mean) を計算し、その値を新しい重心として更新します。
収束判定を行います
以下のいずれかの条件を満たした場合、アルゴリズムは終了します。
- 重心の移動量が十分に小さくなった場合
- 目的関数の改善がほとんど見られなくなった場合
- あらかじめ設定した最大反復回数に到達した場合
数学的な目的関数
K-Meansは、クラスタ内平方和(Within-Cluster Sum of Squares, WCSS)を最小化するように設計されています。
実装によっては、この値を inertia と呼ぶこともあります。
WCSSは、
- 各データ点
- そのデータ点が属するクラスタの重心
との ユークリッド距離の二乗 を、すべてのデータ点について合計したものです。
距離の二乗を用いるため、重心から大きく離れた点の影響が強くなるという性質を持っています。
クラスタ数 K の決め方
エルボー法
Kの値を変化させながらWCSSを計算し、その変化をグラフで確認します。
WCSSの減少が急激から緩やかに変化する点を、適切なKの候補として選択します。
ただし、明確な折れ曲がりが現れない場合もあり、判断に主観が入りやすい点には注意が必要です。
シルエット係数
各データ点について、
- 同一クラスタ内での平均距離
- 最も近い他クラスタとの平均距離
を用いて評価指標を算出します。
値は -1 から 1 の範囲を取り、一般に値が大きいほどクラスタリングの質が高いと解釈されます。
実験的に比較して決定します
複数のKを設定してクラスタリングを行い、評価指標や結果の安定性を比較する方法もよく用いられます。
K-Meansの利点
K-Meansには、以下のような利点があります。
- アルゴリズムが単純で理解しやすいです
- 計算量が比較的少なく、大規模データにも適用しやすいです
- 実装が容易で、多くの機械学習ライブラリに標準搭載されています
- 結果が直感的で解釈しやすいです
これらの理由から、クラスタリングの基本手法として広く利用されています。
K-Meansの欠点と注意点
クラスタ数を事前に指定する必要があります
最適なクラスタ数が事前に分からない場合、試行錯誤が必要になります。
初期値依存性があります
初期重心の配置によって、局所最適解に収束する可能性があります。
この問題に対しては、
- k-means++による初期化
- 複数回実行して結果を比較する方法
などが一般的に用いられます。
クラスタ形状に制約があります
K-Meansは、
- 球状に近いクラスタ
- 分散が類似しているクラスタ
- サイズが極端に異ならないクラスタ
を想定しています。
そのため、細長い形状や密度が大きく異なるクラスタには適していません。
外れ値に弱いです
重心を平均値で計算するため、外れ値が存在するとクラスタ全体の位置が大きく影響を受ける可能性があります。
特徴量のスケールに強く依存します
距離ベースの手法であるため、特徴量の単位やスケールの違いが結果に大きく影響します。
そのため、多くのケースで 標準化や正規化を行うことが強く推奨されます。
適用時の実務的な注意点
- 数値特徴量から構成されるデータに適しています
- カテゴリ変数が中心のデータには、そのままでは適していません
- 高次元データでは距離の意味が薄れやすく、次元削減と併用されることが多いです
- 他のクラスタリング手法と比較しながら利用することが望ましいです
まとめ
K-Meansは、
- 構造がシンプルで理解しやすく
- 計算効率が高く
- 結果の解釈が容易
という特長を持つ一方で、
- クラスタ数の指定が必要であること
- 初期値や前処理に結果が左右されること
といった制約もあります。
目的を明確にし、前処理と評価を丁寧に行うことが、K-Meansを適切に活用するための重要なポイントです。
以上、K-Meansによるクラスタリングについてでした。
最後までお読みいただき、ありがとうございました。
