非階層クラスター分析のアルゴリズム

非階層クラスター分析のための手法は複数存在します。ここでは最もポピュラーな手法であり、マクロミルでも採用しているk-means法のアルゴリズムを紹介します。

ある集団を、身長と体重という2つの変数を基準にして、3つのクラスターにk-means法で分類します。

使用するデータは図1にプロットされています。非階層クラスター分析では、まず事前に、分割したいクラスター数を入力する必要があります。
非階層クラスター分析1

図1

今回のクラスター数は3です。サンプルの中から分割したいクラスター数と同じ、3つのサンプルをランダムに選び出して水色で表示しました。この3つのサンプルはシード(seed = 種)といい、それぞれのサンプルと3つのシードに対する距離を計算して、最も近いシードをもとめます。そして、仮に、それぞれのサンプルを最も近いシードと同じクラスターに属すると決めます。
非階層クラスター分析2

図2

このようにピンク、水色、黄色の3つのクラスターを仮につくることができます。しかし、これでは明らかにクラスター分けされているとはいえません。非階層クラスター分析の目的は、同じクラスターの中に属するサンプルはなるべく似通っているように、異なるクラスターに属するサンプル間ではなるべく違いがはっきりするようにすることです。
非階層クラスター分析3

図3

そこで、3つのクラスターの重心という架空の点をそれぞれ求めます。重心は、各クラスターの平均値をもとに算出します。ピンクのクラスターの重心をもとめるには、ピンクのクラスターの平均体重・平均身長をもとめます。3つのクラスターからもとめられた重心をひし形で表わしました。
非階層クラスター分析4

図4

次にこの重心を新しいシードとして、最初と同様にそれぞれのサンプルを最も近いシードと同じクラスターに属するよう、仮にクラスター分けします。2度目のクラスター分けの結果を示しました。ピンクのクラスターの2つが水色に、水色のクラスターのうちの1つが黄色のクラスターに移動しました。ここでまた、それぞれの重心を求めます。クラスターの構成が変わったので、そのクラスターの平均値を表わす重心も移動します。
非階層クラスター分析5

図5

前ステップでもとめた新しいクラスターをもとに、新しい重心を求め、クラスター分けをし直しています。前ステップで図の上の方にあるサンプルを失ったピンクのクラスターの重心が多少下方向に移動し、そのそのためさらにもう1つのサンプルを水色のクラスターに取られていることがわかります。
非階層クラスター分析6

図6

また同じことを行ないます。水色のクラスターがピンクのクラスターから左方向のサンプルを獲得したため、重心が左に移動し、黄色との境界線上のサンプルを失いはじめました。
非階層クラスター分析7

図7

水色の重心がさらに右側へ移動し、もう1つのサンプルを黄色のクラスターに取られました。この時点できれいに分かれているように見えますが、実際いままで繰り返したステップをこれ以降何度繰り返しても、これ以上クラスターに変化はありません。
非階層クラスター分析8

図8

このように、重心をもとめ、クラスタリングをしなおすという手法を繰り返せなくなるまで続けることがk-means法の考え方です。
非階層クラスター分析9

図9

お客さまの課題・ニーズを伺って
リサーチの企画・提案を行います。
各種資料・調査レポートのダウンロードもこちらから

関連コンテンツ