【コピペでR】階層型クラスタ分析

この記事は約3分で読めます。

階層型クラスタ分析って何ができるの?

クラスター(cluster)=「房」「集団」「群れ」
さまざまな特徴をもつものが混ざりあっているものの中から、似たものを集めて集団(クラスター)へと分類するという方法のことです。

小学校1クラスを、男女で分けてみたり、算数の点数区分で分けてみたり、世帯収入区分で分けてみたり、性格で分けてみたり・・。

商品を購入した人を、閲覧したページや他に見ているサイトの情報、性年代、他メディア接触状況、価値観・・・いろんな要素を掛け合わせて分類できます。
分類した後は活用を考えていきます。(ただ見てるだけでもずいぶん楽しいですが、)ターゲティングやリテンション施策への活用やマーケティング戦略への昇華、さらに、事業計画への反映など、使い道は多様です。

分類する母集団が10人程度ならよいのですが、100人を超えるともはや人間がわけていくのは面倒なレベル。
Rを使ったクラスタ分析、トライしていきます。

出力結果イメージ

例えば、性別・年齢・好きな科目・嫌いな科目がわかっている10人をクラスターわけする場合の、結果イメージは・・

10人はこんな感じで分けられて、
クラスターを左右する要素はこんな感じで
(例えば、下半分は好きな科目と嫌いな科目が似通っていて)
2クラスタの場合は赤、3クラスタの場合は青、4クラスタの場合は緑
この場合は4クラスタに分けるのが良さそうです

ちなみに、4クラスタだと左から順番に
・数学が嫌いな女子生徒
・英語が好きな女子生徒
・数学が好きな男子生徒
・15歳の女子生徒
となるわけです。項目数が少ないとナンノコッチャとなりますが、こんな感じでデータが取れます。

(初めての方向け)Rについて

下記記事をご参照ください。

Rのインストール方法
作業前に必ずすること(ディレクトリの移動について)

取り込むデータのフォーマット

1行目に項目名、2行目以降はデータです。
データは文字列でもできないことはないですが、下記コードは数字に対応させています。
男性=1,女性=2、といった感じで置き換える必要がありますが、ただそれだけです。

こんな感じ

【コピペ用】コード

補遺

クラスタ分けしたい人の数が多くなると、階層型では対応が難しくなります。
そんなときは、非階層型(俗に、k-meansとも)にトライしてみてください。

また、クラスタリングとは”集団の中のそれぞれの距離(どれくらい近い=似通っているか)”を利用して分類する手法です。
距離の近さを測る方法はウォード法を使っておけば大抵大丈夫ですが、群平均法や重心法などのコードも念のため記載しました。必要であれば#削除のうえご活用ください。