楽屋

クラスタリングによるグループ分け(1)

クラスタリング(clustering)という手法をご存知でしょうか? クラスター(cluster)とはそもそも”房になる”、”群がる”、”〜を集めて一団にする”という意味です。つまりクラスタリングの意味としては”集団”を作るということになります。とあるデータに対してグループ分けをしようということになります。下記図がイメージになります。 集団分類する方法はいくつもあり、図形の形というもので分類する方法や大きさ、はたまた色という風に分類ができると思います。我々データ分析の世界では情報と情報の距離で分類することが多いです。 情報の距離というものがイメージがつきにくい方もいると思うので人間の体型で考えてみましょう。モデル体型とかぽっちゃり体型とか色々な体型が人間にはあると思います。体型というのは体重だけ、身長だけで決まるものではなくそれらや他の要因(筋肉量、体脂肪率)の組み合わせやによって決まると思います。 身長と体重に注目したダミーデータを用意しました。下記がその散布図になります。 これらのデータを距離の近いもの同士でクラスタリングしてみましょう。今回はK-means法という手法でクラスタリングを行ってみます。 K-means法では先にクラスタ数を設定しないといけません。データの見た目的に3種類のクラスタがちょうど良さそうなので設定します。 うまく分類ができていそうです。ちなみに正確には距離の近いもの同士ではなく、下記手順で計算することになります。 K-means法は、以下のような手法です。
  1. ランダムに各点に対しクラスターを決める。(今回なら3点)
  2. それぞれのクラスタに対しクラスタの平均点を求める。
  3. 全ての点に対しどのクラスタ平均点と最も近いかを計測。
  4. 最も近いものを同一の仮クラスタとする。
  5. 仮クラスタの平均を算出し、平均点とする。
  6. を平均点が動かなくなるまで繰り返す。
距離(ユークリッド距離)でクラスタリングしているため注意点が大きく3つあります。
  1. 同じデータでも尺度が違うと違う結果が出る。
    • 例えば身長をcmでクラスタリングしていますが、mmにすると違う結果が出てしまいます。
    • そのため正規化という手法をすることで各変数に対する尺度の影響を揃えることができます。
  2. ランダムに設定される初期値に依存するため同一の結果になるとは限らない。
    • 複数回クラスタリングを実行し、平均を取るという方法もあります。
  3. クラスタ数が分析者の主観で決まるため、納得感が得られない場合がある。
    • ある程度の範囲のクラスタ数を全て出し関係者で合意を取るのが望ましいです。
では下のようなデータではどうでしょう? 3種類のタイプの人間がいそうですね?同じようにK-means法を実行すると以下のようになります。 うまくいっていませんね。K-means法は距離が近いものをくっつけるため結果がこのような結果になってしまいました。 次回は別のクラスタリング手法、密度を元にクラスタを推定する方法を用いてこの問題を考えたいと思います。