非階層クラスター分析

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

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

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

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

分割したいクラスター数を入力

図1

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

各サンプルとランダムに選び出した3つのシードに対する距離を計算して、最も近いシードを求める

図2

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

オレンジ、水色、黄色の3つのクラスターを仮につくる

図3

そこで、3つのクラスターの重心をそれぞれ求めます。重心は、各クラスターの平均値をもとに算出します。オレンジのクラスターの重心をもとめるには、オレンジのクラスターの平均体重・平均身長をもとめます。3つのクラスターからもとめられた重心をひし形で表しました。

3つのクラスターの重心をそれぞれ求める

図4

次にこの重心を新しいシードとして、最初と同様にそれぞれのサンプルを最も近いシードと同じクラスターに属するよう、仮にクラスター分けします。2度目のクラスター分けの結果を示しました。オレンジのクラスターの2つが水色に、水色のクラスターのうちの1つが黄色のクラスターに移動しました。

重心を新しいシードとして、それぞれのサンプルを最も近いシードと同じクラスターに属するよう、仮にクラスター分け

図5

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

新しい重心を求め、クラスター分けをし直す

図6

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

新しい重心を求め、クラスター分けを繰り返す

図7

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

これ以上クラスターに変化がない時点までクラスター分けを繰り返す

図8

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

重心をもとめ、クラスタリングをしなおすというk-means法の考え方に基づくクラスター分け結果

図9

より深く知りたい方はこちら(関連リンク)

クラスター分析 >>

階層クラスター分析 >>

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

関連コンテンツ