大規模データのクラスタリング

SOMデータマイニングでのクラスタリングも、基本的には従来の多変量解析でのクラスタ分析とほぼ同義と考えて頂いて結構です。従来のクラスタ分析では、非階層型クラスタ分析(K-means)と階層型クラスタ分析があります。統計の本では、これらの計算の方法などは詳しく書かれているのですが、実際的な使い方があまりちゃんと教えられていないことが多いようです。SOMデータマイニングの効力を理解するには、まず従来の方法を知っておく必要があります。

主要な統計ソフトには、K-meansという非階層型クラスタリングが搭載されていますが、これの有効な使い方は、データレコードの件数がとても多い場合に、データ圧縮の方法として使用することです。たとえば、データレコードが1万件とか10万件、あるいはそれ以上あるような場合に、K(参照ベクトルの数)を(たとえば)1000に設定して、K-meansを実行します。つまり、1000個の参照ベクトルで大量のデータレコードを代表させるのです。そして、その1000個の参照ベクトルに対して、階層型クラスタリングを実行するのです。K-meansで最終のクラスタを得ようとするのは、あまり良い方法ではありません。K-meansには初期値依存性の問題(すなわち再現性の問題)があります。

一方、階層型クラスタ分析は、すべてのオブジェクトが1個ずつ異なるクラスタに属する状態からスタートして、距離の近いクラスタから順次併合していきます。クラスタ間の距離の定義の仕方によって、複数の手法に分かれていますが、近いクラスタから順次併合するという動作はすべて同じです。そして、階層型クラスタ分析のデフォルトの選択はWard法です。ほとんどの場合、Ward法以外の手法を選択する必要はないと考えても良いはずです。Ward法は、クラスタの併合後のクラスタ内分散(の増大)を最小化するように併合するクラスタを決定する手法です。

大規模データのクラスタリング
大規模データのクラスタリング

 

大量のデータレコードに直接、階層型クラスタリングを適用すると、最初はすべてのデータレコードが別々のクラスタに属する状態からスタートしますから、データレコードの件数によって爆発的に計算量が増大します。したがって、大規模データの場合には、前段としてK-meansを実行して、後段でWard法を実行するという具合に使用するのが正解なのです。

クラスタ分析自体は、データレコードが各クラスタに振り分けられるところまでで終わりなのですが、ここで分析を終わらせてしまうのはお薦めできません。少なくともクラスタごとの統計的特徴を分析するべきです。最も単純な方法は、各属性(変数)の記述統計量をクラスタ間で比較することです。より高度な方法としては、統計的検定を用いて有意な差のある属性を発見します。

以上のような分析を通常の統計解析ソフトを用いて、大規模データに適用しようとするとたいへんな労力となってしまいます。クラスタリングは簡単にできても、結果を用いてデータを分析することがたいへんになります。時間もかかりますし、手順が多いのでミスも起こりがちです。SOMデータマイニングでのクラスタリングの第1のメリットは、このような煩雑な分析を簡単にするということです。技術的に言えば、K-meansのところが(再現性が保証され、かつ、多次元データの固有のトポロジーを保持する)バッチ型SOMに置き換わる1)のですが、SOMの可視化の上で、あとの分析を統一的に行えるというのが最大のメリットです。


1) K-meansでKを5とか7など人間がクラスタを認識するのにちょうどよい数に設定して使用する方法は、実践的には推奨されません。階層型クラスタリングの代わりにK-meansを使用することのメリットはとくにありません。同様に3×3などの極端に少ないノード数のSOMを用いてクラスタリングするように紹介している記事を見かけることがありますが、(その著者がいかに著名な大学教授であろうと)完全に誤解した使い方であり間違いです。

< 前ページ  次ページ>

back to top

©2000-2014 Mindware Inc. All rights reserved.