クラスタリングのそもそも
まずはクラスタリングのそもそもの説明から入っていく。
クラスタリングは、機械学習のなかでもいわゆる教師なし学習に含まれる。
つまり、模範解答によって訓練し規則性を見つけ出す(分類、回帰)教師あり学習とは目的が異なる。
クラスタリングの目的とは、データセットのなかでグループを見つけ出すことである。
例えば、顧客データのクラスタリングによって、顧客の購買傾向をグループ化してそれぞれに最適なレコメンドを行うことができる。
ちなみに、犬と猫の画像データにそれぞれ「犬」「猫」とラベルをつけて判断させるのが**分類(Classification)で、
同じ画像データでも正解を教えず、分類器が自ずと犬と猫の違いを導くのがクラスタリング(Clustering)**である。
階層的クラスタリング
クラスタリングには階層的手法と非階層的手法がある。
階層的クラスタリングでは、もっとも類似度の高い組み合わせをまとめていくことを繰り返し、グループの階層を作っていく。
ノードがツリー構造になるのを想像してもらうとわかりやすい。これがいわゆるデンドログラムである。
このデンドログラムは、アイテム同士の距離も表すことができるので、クラスタ内のアイテムがどの程度似ているのかを知る助けにもなる。
ところが、階層的クラスタリングのツリー構造には、いくつか欠点もある。
まず、そのままでははっきりとしたグループに分けられない。
そして、計算量が非常に大きい。
アイテムの全ての組みに対して計算を行う上に、アイテムがマージされると再計算が必要になる。
(階層の高さによってクラスの数を決める)
つまり、大きなデータセットを扱う場合には不向きである。
k平均法
そこで、非階層的手法の中にk平均法という手法がある。
k平均法では、あらかじめ決めておいた数のクラスターにアイテムを振り分けていく。
階層的手法と違って、ビッグデータ分析にも用いることができる。
アルゴリズム
- アイテムから、クラスタの重心をk個決める
- 全てのアイテムと重心の距離を計算。各アイテムはもっとも近い重心のクラスになる
- 2で求められたクラス内で、アイテムのノードの平均をとり、重心を再度割り当てる
- 2と同じ要領でクラスが求められる
- 3と4を、重心の割り当てに変化が生じなくなるまで繰り返す
問題点
k平均法では注意すべき点がある。
それが、あらかじめ決めるクラスターの数である。
重心の決め方によって、クラスタリングが正確にならない恐れがある。
いくつのクラスターに分けるのかに直接的な正解はないので、分析するときに頭を悩ませるポイント。
クラスタリングで注意するポイント
なお、このような問題はk平均法だけの問題ではない。
クラスタリングは教師なし学習なので、分析結果に対して妥当かどうか考える必要がある。
また、あくまでデータの傾向を知るものなので、その分類結果を絶対的な答えとして用いるのは誤りである。
大きなデータに対して、アイテム同士にどのようなデータの傾向があるのかを見てみる手法として、クラスタリングは用いたい。