だから私は(はずの)単純なものに困惑しています:
単純な 'play' 2 次元データ セットの SOM を作成しました。データは次のとおりです。
自分で3つのクラスターを作ることができます。
さて、私を混乱させる2つのことがあります。1 つ目は、私が持っているチュートリアルでは、SOM が作業を開始する前にデータを正規化することです。これは、各データ ベクトルの長さが 1 になるように正規化することを意味します (ユークリッド ノルム)。これを行うと、データは次のようになります。
(これは、すべてのデータが単位円に投影されているためです)。
したがって、私の質問は次のとおりです。
1) これは正しいですか? データを単位円に射影するのは、3 つのクラスターを作ることができなくなるため、うまくいかないようです... これは SOM にとって現実的なことですか? (つまり、それらは単位円でのみ機能します)。
2) 関連する 2 番目の質問は、データが長さ 1 になるように正規化されるだけでなく、反復ごとに各出力ユニットの重みベクトルも正規化されるということです。重みベクトルが「爆発」しないようにこれを行うことは理解していますが、重みベクトルの全体的なポイントは距離情報を保持することであるため、私には間違っているようです。それらを正規化すると、適切に「クラスター化」する能力が失われます。たとえば、SOM は、左下のクラスターと右上のクラスターをどのように区別できますか? 同じように単位円に投影されるためです。
私はこれに非常に混乱しています。データを SOM の単位長に正規化する必要がありますか? 重みベクトルも正規化する必要がありますか?
ありがとう!
編集
これは、 MATLAB の .mat ファイルとして保存されたデータです。シンプルな 2 次元データセットです。