「非階層クラスター分析」とは
非階層クラスター分析とは、異なる性質のものが混ざり合った集団から、互いに似た性質のものを集め、クラスターを作る1つの方法です。階層クラスター分析とは異なり、階層構造を持たず、あらかじめいくつのクラスターに分けるかを決定し、決めた数のクラスターにサンプルを分割する方法です。具体的には下記のようなイメージです

※ALBERTより提供
K-means法とは
K-means法とは、データマイニングの中でもよく用いられる手法で、クラスターの平均を用いて、与えられたクラスター数をK個に分割することから、名づけられました。
K-means法を利用すると、従来のセグメンテーションよりも柔軟なセグメントが可能になるので、そこに対して細やかなアクションが取れるようになります。
具体的なアルゴリズムをかいつまんで説明すると、下記のような工程です。
- 各点にランダムにクラスターを割り当てます
- クラスターの重心を計算します
- 点のクラスターを一番近い重心のクラスターに変更します
- 変化が起こらなければ終了(収束)です。変化がある場合は2に戻ります
上記の工程を経ることで、前述したクラスター分析のイメージ図のように分類することができます。この計算について、なぜこうなるのかはこちらを参照ください。
RでK-means法を実行する
RでK-means法を実行することは非常に簡単です。なぜなら、K-means法を実行するための関数kmeans()がすでに標準で搭載されているからです。
この関数は以下の通りです。
kmeans(x, centers, iter.max = 10, nstart = 1, algorithm = c("Hartigan-Wong", "Lloyd", "Forgy", "MacQueen"))
上記の関数の中の引数を設定することで、分類したいデータをK-means法を用いてクラスタリングを実施することができます。設定する引数(関数を定義する際に用いられる変数)について、少し解説をしておきましょう。
- x:クラスター分析を実施したいデータセット
- centers:クラスター数Kを指定します(以下は任意の設定引数です)
- iter.max:くり返し計算の最大回数です。デフォルトは10となっています
- algorithm:利用するアルゴリズムを上記の4つから選択できます。
(デフォルトではアルゴリズムに"Hartigan-Wong"が設定されており、最もよい結果を出すと知られています)