大規模データのクラスタリング
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法を実行するという具合に使用するのが正解なのです。