クラス分類

SOMは、主成分分析やクラスタ分析などの目的変数を持たない場合の多変量解析手法に対応する非線形版として捉えることができます。つまり、SOMのアルゴリズム自体は、説明変数をモデルしようとするだけであり、説明変数と目的変数の関係をモデルしようとはしていません。しかし、実際的には、ほとんどの場合で、クラス分類のためのマップを簡単に得ることができます。

SOMでのクラス分類は、学習されたSOMの(説明変数に対応する)ノード値と新しいデータレコードの説明変数の値をマッチングさせることで実現されます。新しいデータレコードがSOMのどのノードに一番近いかによって対応するノードを定め、対応するノードの目的変数の値によって、分類が決定されるというごく単純な仕組みです。このときに、対応するノードの周辺のノードの値も重みづけしながら考慮に入れる一種のアンサンブル手法は、SOMの研究のごく初期から知られている方法です。

この原理から、マップ上で目的変数の値が穏やかに分布している場合は、よく動作する分類器となります。逆に、目的変数の分布がランダムになっていると、説明変数のわずかな値の違いで敏感に目的変数の値の結果が変化するということを意味するので、そのマップは説明変数と目的変数の関係を説明していないということになります。したがって、そのようなマップは、クラス分類の目的に使用することはできません。クラス分類のポイントは、目的変数の値が穏やかに分布している(きれいに分離している)マップを得ることです。

マップを学習する際に目的変数を含めるべきかどうかについて異論が出やすいのですが、実践的な方法として、目的変数を含めてマップを作成しておいて、分類を実行する際に説明変数のみでマッチングを行う方法は間違いではありません。すでに述べたように、SOMアルゴリズム自体には、説明変数と目的変数の関係をモデルする能力はありませんが、マップの順序づけに目的変数が寄与することにより、目的変数の値が穏やかに分布するマップが得られ、結果として、良好な分類性能がごく簡単に得られます。分類を実行する際に説明変数のみでマッチングすることが重要ですので、そこさえ間違わなければ大丈夫です。

SOMは教師なし学習だからという理由で、教師信号(すなわち目的変数)を含めないデータでマップを順序づけするのが正しい方法だ考える人がいます。しかし、モデルを作成する際に目的変数の情報を一切使用せずに、まともな分類モデルが得られる道理がありません。もちろん、説明変数に絶妙な重みをかけることによって、説明変数のみで順序づけしたマップで目的変数を説明できる可能性はあります。次のページで述べるSOMローカル回帰の中で採用されている高度な技法を用いて、説明変数の最適な重みづけを求めることができます。しかし、クラス分類に関しては、上記の方法でごく簡単に結果が得られるので、やみくもに高度な手法にこだわるのは経済的でありません。

それよりむしろノードごとの分類誤差に注目した方が実践的です。つまり、各変数への重みづけを変えて複数のマップを作成しておいて、複数のマップでアンサンブルを行う方法があります。それぞれのマップの各ノードで分類誤差を求めると(Viscoveryではその機能もサポートしています)、同一のデータレコードがマッチするノードの分類誤差が複数のマップの間で異なります。つまり、ケース・バイ・ケースで分類誤差がより微小なマップの結果をより重要視する高度なアンサンブルが可能になります。

一般的なクラス分類モデルは、目的変数の値が観察されたデータからモデルを作成して、目的変数が観察されていない新しいデータで実行するのですが、さらに(観察ではなく)クラスタリングをもとにして、新たに作成(創造)されたセグメンテーション・モデルを新しいデータレコードに適用する場合もまったく同じ動作で実行できます。ノード値とデータレコードをマッチングすることが、SOMの基本動作です。

つまり、通常どおりの(外的基準による)のクラス分類モデルを作成するだけでなく、SOMを使うことの本当のメリットは、クラスタリングとクラス分類という本来は別々の手法をSOMという共通基盤の上で実現できるところにあります。クラスタリングによって新しく定義したセグメンテーション・モデルをそのままで、分類モデルとして新しいデータレコードに定義して実行することができます。他のデータマイニング・システムなら、ここで決定木などの他の手法を使って再度、クラス分類モデルを作成する必要があるのですが、SOMをデータ表現基盤としているViscoveryの場合は、その手間が必要ありません。

< 前ページ  次ページ>

back to top

©2000-2014 Mindware Inc. All rights reserved.