3

私は SOM と、最良のクラスタリング結果を得る方法に取り組んできました。1 つの方法は、多くの実行を試みて、二乗誤差の合計内で最小のクラスタリングを選択することです。

ただし、ランダムな値を初期化していくつかの試行を行うだけでなく、適切なパラメーターを選択したいと考えています。「Influence of Learning Rates and Neighboring Functions on Self-Organizing Maps」(Stefanovic 2011) を読みましたが、近傍関数と学習率のどのパラメーターを選択すればよいかわからない場合は、ガウス分布を選択するのがおそらく最良の選択肢であるとのことです。関数と非線形学習率。

私のデータは時系列です:

matrix(c(sample(seq(from = 10, to = 20, by = runif(1,min=1,max=3)), size = 5000, replace = TRUE),(sample(seq(from = 15, to = 22, by = runif(1,min=1,max=4)), size = 5000, replace = TRUE)),(sample(seq(from = 18, to = 24, by = runif(1,min=1,max=3)), size = 5000, replace = TRUE))),nrow=300,ncol=50,byrow = TRUE) -> data

これには、それぞれ 50 の値を持つ 300 の観測値があります。100 個の観測値は、それぞれがより類似する傾向があります。

私はkohonenパッケージで作業しています。

コード:

grid<-somgrid(4,3,"hexagonal")

kohonen<-som(data,grid)

matplot(t(kohonen$codes),col=kohonen$unit.classif,type="l")

10 から 22 の間の値を持つクラスターが得られます。これは観測に似ています

ここに画像の説明を入力

ガウス近傍関数と逆時間学習率を提供する「som」パッケージも試しました。

som<-som(data,4,3,init="random",alphaType="inverse",neigh="gaussian")

som$visual[,4]<-with(som$visual,interaction(som$visual[,1],som$visual[,2]))

som$visual[,4]<-as.numeric(as.factor(som$visual[,4]))

matplot(t(som$code),col=som$visual[,4],type="l")

ここに画像の説明を入力

ここでは、値が 15 ~ 18 のクラスターを取得するため、すべてのクラスターが「縮小」して、より類似したものになります。異なる入力シリーズで同じ現象が発生します

私の2つの質問:

1) ガウス近傍関数と非線形学習率を備えた良好なクラスターが得られると言われているにもかかわらず、som パッケージを使用した自己組織化マップのクラスターが非常に類似しており、はるかに小さい範囲に縮小するのはなぜですか?

2)適切なクラスターを取得するために、ガウス近傍関数と非線形学習率でこの範囲が縮小するのをどのように回避できますか?

4

0 に答える 0