3-2-2-1 クラスタリング

クラスタリングとは

クラスタリングとは、正解ラベルを使わずに、データの中から似たもの同士を見つけ出し、自然なグループ(クラスタ)に分けていく手法です。
AIは「これが答えだよ」と教えられることなく、特徴量だけを頼りに、「なんとなく、ここは似ている」「この集まりは、ちょっと雰囲気が違う」と、データのまとまりを見つけていきます。

非階層クラスタリング

非階層クラスタリングは、あらかじめ「いくつのグループに分けるか」を決めて、データを一気に分けにいく方法です。
階層クラスタリングのように、少しずつくっつけて木を作るのではなく、最初から「3つに分けよう」「5つに分けよう」と決めて、そこに向かって整理していきます。
先に「箱の数」を決めてから、データを入れていく方法ですね。
その代表が、K-means(K平均法)です。

◆K-means
K-meansとは、K=グループの数、means=平均という意味です。
ざっくり言うと、「それぞれのグループの中心を決めて、一番近い中心にデータを集める」という仕組みになります。
流れは以下のようになります。

K個の中心をランダムに置く
各データを、いちばん近い中心に割り当てる
それぞれのグループの「平均位置」を計算する
その平均を新しい中心にする

これを繰り返します。
するとだんだん、自然なまとまりができていきます。

たとえば、ECサイトのお客さんデータ。
特徴量が:年齢、購入金額だったとする。
K=3 に設定すると、AIはデータを眺めて、

1 若くて少額購入のグループ
2 中年で平均的購入のグループ
3 高年齢で高額購入のグループ

のような、3つ(K=3)の「自然な集まり」を作ります。
誰も「この人はグループAです」とは教えていないのに。

ただし注意点もあります。
Kの値を自分で決めなければならない
・丸い形のクラスタが得意
・初期位置によって結果が変わることがある
つまり、少し素直な性格なのです。

非階層クラスタリング→先にグループ数を決めるタイプ
K-means→各グループの「平均(中心)」に近いもの同士を集める方法

階層クラスタリング

非階層クラスタリングが「先に箱の数を決めて、一気に分ける方法」だったのに対して、階層クラスタリングは、もっとゆっくり。
いちばん近いもの同士を見つけて、少しずつ、少しずつ、くっつけていきます。
最初は、すべてがバラバラ。そこから、「この2つ、ちょっと似てるね」「じゃあ、このグループとこのグループも近そう」と、小さなまとまりを積み重ねていきます。

この「くっついていく過程」を、木の形で描いたものが、デンドログラム(樹形図)
デンドログラムは、下のほうに個々のデータ→上にいくほど大きなグループという形で、「どの順番で、何と何が結ばれたか」を見える化した図です。
枝が合流していく様子を見ると、どこで区切ればよさそうか、どのデータ同士が特に近いかが、直感的に分かります。

階層クラスタリングの大きな特徴は、あとからグループ数を決められること
木の途中でカットすれば、2グループにもできるし、5グループにもできます。
最初にKを決める必要がないのです。これが、K-meansとの大きな違いです。

階層クラスタリング→近いもの同士を順番にまとめていく方法で、グループ数をあとから決められる
デンドログラム(樹形図)→その過程を木の形で表した図

ウォード法は、階層クラスタリングの中でも、とても慎重派です。
クラスタ同士をくっつけるとき、こう考えます。
「この2つを一緒にしたら、全体のバラつきは、どれくらい増える?」
そして、バラつき(分散)がいちばん増えない組み合わせを選んで、少しずつ統合していきます。

最初は、すべてのデータが一人ぼっち。
そこから、
・この2人は近い
・このグループ同士もまあまあ自然
という感じで、クラスタ内のまとまりがなるべく崩れないように、慎重に、段階的にまとめていきます。
だからウォード法でできるクラスタは、形が比較的きれいで、サイズも極端に偏りにくいという特徴を持ちます。
デンドログラムと一緒に使うと、「どこで切ると、自然なグループになるか」も見えやすいのです。

ウォード法→階層クラスタリングの代表的手法で、クラスタ内の分散が最小になるように統合する