🎉

k-means法 # 応用志向型モデリング

2020/11/12に公開

なぜ書くのか?

クラスタリングのできることとその種類を理解するため。また、k-means法の仕組みも理解する。

クラスタリング

クラスタリングとはデータ間の距離を元に類似するデータをグループに分ける手法である。クラスタリングは2種類ある。ハードクラスタリングソフトクラスタリングである。ハードクラスタリングはデータ点を1つのクラスターに分類させる。ソフトクラスタリングはデータ点を複数のクラスターに分類して確率が高いクラスターに当てはめる。

k-meams法

k-means法はハードクラスタリングの手法の1つである。
以下のフローで実装を行う。
①ランダムにデータ点をクラスタに割り当てる。
②各クラスタに割り当てられたデータ点の重心を計算する。
③データ点と各クラスタの重心の距離を計算し、一番近い重心のクラスタに割り当てを行う。
④割り当てたクラスタが変わらなくなるまで①〜③を繰り返す。

k-means法は非階層クラスタリングと言われるが、非階層クラスタリングとはいくつのクラスターに分類するかを決めておき、サンプルを分割していく手法である。一方で階層クラスタリングではまず似ている組み合わせを順番にまとめていき、樹形図(デンドログラム)を作成する。そして出来上がった樹形図をもとにデータをクラスターに分割する。

Irisデータを使った実践

RでIrisデータをクラスタを3つに指定した結果はこのようになる。

クラスタを4つに指定した結果はこのようになる。

クラスタはランダムに割り当てられた初期値に依存するので、複数回k-means法のクラスタリングを行うとクラスタに割り当てられるデータ点は異なる。以下がクラスタを4に指定した2回目のクラスタリングの結果である。

まとめ

次回は階層クラスタリングの融合法について解説する。

Discussion