1行定義
k-means法とは、データをあらかじめ決めたk個のクラスタに分けるため、重心への割り当てと重心の再計算を繰り返すクラスタリング手法のことです。
くわしく
k-means法は、正解ラベルのないデータを、似たものどうしのグループ(クラスタ)に分ける手法です。名前のkはクラスタの数、meansは平均を表します。各クラスタの中心を、そのクラスタに属するデータの平均(重心)で表すことから、この名前がつきました。
手順
- クラスタの数kを決め、k個の重心の初期位置を選ぶ。
- 各データを、最も近い重心のクラスタに割り当てる。
- クラスタごとに、属するデータの平均をとって重心を計算し直す。
- 割り当てが変わらなくなるまで、2と3を繰り返す。
この手順を繰り返すと、各データとその重心との距離の2乗の合計(クラスタ内平方和)が小さくなっていきます。
使いどころと注意点
計算が単純で大量のデータにも適用しやすく、購買傾向による顧客のグループ分けなどに使われます。ただし、次の点に注意が必要です。
まず、kは分析者が決めます。kを変えながらクラスタ内平方和の減り方を見るエルボー法などが目安になります。次に、結果は重心の初期位置に左右され、最良とは限らない分け方(局所解)で止まることがあります。初期の重心を互いに離れた位置に選ぶk-means++という工夫があります。
また、ユークリッド距離で近さを測るため、値の範囲が大きい特徴量の影響が強く出ます。事前に標準化しておくのが一般的です。丸くまとまったクラスタを想定しているため、細長い形や入れ子の形のクラスタはうまく分けられません。
階層的クラスタリングとの違い
k-means法は、最初に決めたk個のクラスタにデータ全体を分ける非階層的な手法です。ウォード法などの階層的クラスタリングは、近いものから順に併合していき、その過程をデンドログラムで表します。得られたクラスタに「よく買う層」のような意味を与えるのは、どちらの手法でも分析者の役割です。
覚え方
「k個の重心に寄せて、平均で動かす」と覚えます。
G検定での出題
出題のされ方
クラスタ数kを事前に決める点、割り当てと重心の更新を繰り返す手順、初期値への依存、ウォード法などの階層的クラスタリングとの違いが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| k-means法このページの用語 | データをあらかじめ決めたk個のクラスタに分けるため、重心への割り当てと重心の再計算を繰り返すクラスタリング手法 |
| ウォード法 | 階層的クラスタリングの方法の1つで、まとめたときのクラスタ内の平方和(ばらつき)の増え方が最小になる組から順にまとめていく方法 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
k-means法では、各データを最も近い重心のクラスタに割り当てる手順と、クラスタごとの平均で重心を計算し直す手順を交互に繰り返す。
答えを見る
答え ◯ 正しい
割り当てが変わらなくなる(重心がほとんど動かなくなる)まで繰り返して終了します。
-
k-means法は距離で近さを測るため、値の範囲が大きい特徴量があると、その特徴量の影響が強く出やすい。
答えを見る
答え ◯ 正しい
年収(円)と年齢(歳)をそのまま使うと、ほぼ年収だけで分かれてしまいます。事前の標準化が一般的です。
-
k-means法は、細長い形や入れ子になった形のクラスタでも、形に合わせて正しく分けられる。
答えを見る
答え × 誤り
重心からの距離で割り当てるため、丸くまとまったクラスタを想定しています。複雑な形のクラスタは苦手です。