
クラスタ分析とは?
クラスタ分析とは類似のデータレコードからなるグループを見出すということを狙った統計手法のことを言い ます。 クラスタ分析は2つの個体がどれだけ似ているか、またはどれだけ違っているかを見極めることから始まりま す。データをコード化し、適当にスケーリングした後に、似通ったデータをグルーピングする操作が行われま す。主なアプローチとしてはk-means法と階層的手法の2種類があります。
NAGが提供するクラスタ分析の機能
NAG データマイニング コンポーネントではk-means法もしくは階層的手法を用いた クラスタ分析を行うためのサブルーチン(関数)が提供されています。 NAG データマイニング コンポーネントはC言語, C++, Java, VB, VBA(Excel)など様々な環境からご利用いただけます。またWindows, Linux, Solaris など様々なOSをサポートしています。
k-means法によるクラスタ分析
k-means法によるクラスタ分析では、データ中にいくつのグループ(クラスタ)が あるかをユーザが決めます。そのグループ数に関し事前にわかっている場合を除けば、 いくつかの k の値に対し実験を行い、最適な値を見出すというのが賢明なやり方と言えます。 次にこの手法はそれぞれのデータを k 個のグループのいずれかに割り振ります。 最初の割振りが終わったら次にグループ間でデータレコードを移動させ、グループ内距離の合 計が最小になるまでそれを続けます。
初期の割振りには様々なやり方があります。一つの方法はk 個の個体をランダムに選択し、それらをグループ の中心として使用する方法です。次に残りを最も近い中心を持ったグループに割り振って行く方法です。初期 のクラスタを見出す他のアプローチとしては、グループ中心を与える事前の情報を用いる方法やキーとなる個 体をグループ中心として使用する方法があります。
階層型クラスタリング
階層型クラスタリング(hierarchical clustering) は通常データレコードの集合からスタートし、 それらを1 ステップずつグループ化して行き、最後に1グループに到達する方法です。 このアプローチの利点はグループが結合される様子を見ることによって、 データ中にいくつグループが存在し、それらがどの程度明確に規定されたものかに関する 情報が得られる点にあります。 また開始点を指定する必要もありません。
階層型クラスタリングには良く使われる6種類の手法があります。 単連結法(single link)、完全連結法(complete link)、 群平均法(group average)、重心法(centroid)、メディアン法(median)、最小分散法(minimum variance) の6つです。 それぞれの違いは個体間の距離からグループ間の距離をどう算出するかという点にあります。 この選択はクラスタリング手法の性格を左右することになります。
階層型クラスタリングを遂行する上での標準的なアプローチは最初にすべての個体に対し 距離行列を計算し、その後この行列を更新して行く方法です。 これは個体数が高々数1000 までのケースに適しています。しかし階層型クラスタリングの 6つの手法のうち群平均法と最小分散法については異なるアプローチが存在します。 これら2手法の双方とも、グループ間の距離を計算する際、グループメンバをグループの重心で置き換えられるという特質を持っています。従ってある一時点においてはグループ平均のみを記憶しておけば良いことになりますので、多くの併合操作を平行して進めなければならないことと合わせ考えると、効率の面で優位な特質です。
【NAGのデータマイニングコンポーネントのドキュメント】
イントロダクションガイド
ユーザーガイド
提供されているクラスタ分析関数(サブルーチン)
【k-meansクラスタ分析ルーチン】
nagdmc_kmeans - k-meansクラスタ分析の計算を行う
nagdmc_wcss - クラスタ内の平方和を計算する
nagdmc_rints - クラスタ中心を構成するデータレコードを無作為に選択する
nagdmc_nrgp - データレコードの最近傍クラスタを探索する
【階層的クラスタ分析ルーチン】
nagdmc_hclust - 階層的クラスタ分析(グループ平均もしくは最小分散)を行う
nagdmc_cind - 階層的クラスタリング後に、データを指定のグループ数に分ける
その他データマイニング機能一覧