k平均法

概要

k平均法(k-means clustering)はクラスタリングの手法の1つで、与えられたデータ群の特徴と初期値に基づいて、データを並列(非階層)のクラスターに分類する。

ここではk平均法の簡単な例を実装したKMeansClusteringクラスによって、その挙動を確認する。

テストケース

基本形

2つのクラスターがある程度明確なケースで試してみる。一定の円内にランダムに点を発生させ、そのグループを2つ近づけた例。

以下のように、重なった部分は仕方がないが、かなり元のグループに近い分類となっている。

初期値を変えた場合

代表点の初期値を変えて実行してみる。

上記とはかなり離れた初期値を設定しても、解は同じになる。

収束解も上記と全く同じ値になる。

クラスターが不明確な場合

先の結果だけを見ると、かなり初期値がずれてもクラス分類は安定なように見える。

そこで次に、元々の分布に明確なクラス分けが見えない場合に3つのクラスターに分ける例を考える。

初期値1

初期値2

上記に対して初期値を変更。

データは同じだが、クラスター分けは違ってきている。

極端な例

次に、元の分布でクラスターが見いだせないような極端な場合を考える。

初期値1

代表点の初期値は縦に並んでおり、クラスターも縦方向に分割されている。

初期値2

全く同じデータで代表点の初期値を横に並べた場合、クラスター分けは大きく異なっている。

3クラスター

最後に、元のデータでクラスターがかなり明確な場合を試してみる。

初期値1

初期値が隅の方から始まっていても、3つのクラスターによく分かれている。

初期値2

初期値の場所や並びがかなり異なっていても、クラスター分けは安定している。

まとめ

k平均法は初期値によって解が変動するとされているが、明らかにクラスターが明確な場合には解は安定している。

ただしそのようなケースは、特徴量の数が少なく分布が一目瞭然の場合に相当するので、特徴量が多く一目ではそのクラスターがわかりにくいような場合には、やはり初期値の取り方に大きく影響されるものと考えられる。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です