1

SOM を作成するための良い候補になると思われるこのデータ セットがありますしたがって、次のようにテキストに変換しました。

10
12  1   0   0    
13  3   0   0    
14  21  0   0    
19  1983    15  0    
24  5329    48  0    
29  4543    50  0    
34  3164    32  0    
39  1668    22  1    
44  459 4   0    
49  17  0   0

私は Octave を使用しているので、次のコマンドでデータを変換しました。

dataIn = fopen('data.txt','r');
n = fscanf(dataIn,'%d',1);
D = fscanf(dataIn,'%f'); %D is a 1 x n column matrix
D = D'; %Transpose the data D is now an n x 1 matrix
D = reshape(D, 4, []); % give D the shape of a 4 x n/4 matrix
D = D(2:4, :); % the dimensions to be used for the SOM will come from the bottom three rows

ここで、SOM スクリプトを適用して、D を使用してマップを生成しています。スクリプトはここ にあり、次のように定義された findBMU を使用しています。

%finds best matching unit in SOM O
function [r c ] = findBMU( iv,O ) 
dist = zeros(size(O)); for i=1:3
dist(:,:,i) = O(:,:,i)-iv(i);   
iv(i); 
end 
dist = sum(dist.^2,3); 
[v r] = min(min(dist,[],2)); 
[v c] = min(min(dist,[],1));

最後に、次のようなランダム マップで開始します。 ランダム カラー マップ

そしてそれは次のようになります: SOM

問題は、私の SOM が何を言っているのかわからないということです。読み方は?

4

1 に答える 1

0

まず、Octave が提供するのはせいぜい SOM 方法論の近似であることに注意してください。SOM の主な方法論的利点は、(すべての) 暗黙のパラメーターへの透過的なアクセスの可能性であり、Octave ではそれらにアクセスできなくなりました。

第 2 に、データを考慮すると、最初に情報を要約してから SOM にフィードすることによって、情報を真剣に破壊することはあまり意味がありません。基本的に、上記のテーブルには 4 つの変数があります。年齢、合計 N、単一 N、双子 N です。破棄したのは、地域に関する情報です。

このように、3 つのディストリビューションを SOM に入れます。期待できるのはクラスターだけです。ただし、SOM はクラスターを構築するためのものではありません。代わりに、最も正確なモデルと最も関連性の高い変数を見つけるために、診断および予測モデリングに SOM が使用されます。「ベストマッチユニット」という言葉に注目!

ただし、あなたの例では、SOM にディストリビューションしかありません。基本的に、変数も予測/診断目的もないため、解釈はありません。

たとえば、分布の類似性を判断するモデルを構築できます。ただし、そのためには、SOM ではなく、適合度検定 (ノンパラメトリック、Kolmogorof-Smirnov) を使用する必要があります。

于 2014-02-06T17:16:37.390 に答える