k-means法(k-Means Clustering)とは、データをk個のクラスタに分割するクラスタリングアルゴリズムです。シンプルで高速なため、最も広く使われているクラスタリング手法の一つです。
アルゴリズムの手順
①k個の初期中心点をランダムに配置→②各データ点を最も近い中心点のクラスタに割り当て→③各クラスタの平均値を新しい中心点とする→②③を中心点が収束するまで繰り返す、という手順で動作します。
| ひとことで言うと | データをk個のグループに分ける、最も基本的なクラスタリング手法。 |
|---|---|
| どこで使う | 顧客セグメンテーション、店舗の類型化、商品のグループ分け。 |
| 注意点 | グループ数kは人が決める。初期値で結果が変わるので複数回試す。 |
初期値の影響とk-means++
k-meansは初期中心点の選び方に結果が左右されます。k-means++は初期中心点を互いに離れた位置に配置する改良手法で、より良いクラスタリング結果を得やすくします。
1k個の中心を置く最初はランダム
▶
2近い中心に割当各データを所属させる
▶
3中心を計算し直す各グループの平均位置へ
▶
4変化しなくなるグループが確定
↺ 2〜3を、割り当てが変わらなくなるまでくり返す
k-meansの限界
球状のクラスタを仮定しているため、不規則な形状のクラスタには不向きです。また、外れ値に敏感で、クラスタ数kを事前に指定する必要があります。これらの限界を補うDBSCANやGMMなどの手法もあります。