問題タブ [self-organizing-maps]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - Simulinkを用いた自己組織化マップ(SOM)の学習におけるデータ点の動きの可視化について
MATLAB で自己組織化マップ (SOM) アルゴリズムを実装しました。各データ ポイントが 2 次元空間で表されているとします。問題は、トレーニング段階で各データ ポイントの動きを視覚化したいことです。つまり、ポイントがどのように移動し、最終的にアルゴリズムが修正期間ごとに進行しているときにクラスターを形成するかを確認したいということです。これは MATLAB でのシミュレーションを通じて実行できると思いますが、視覚化のために MATLAB コードを組み込む方法がわかりません。
cluster-analysis - 時系列データの SOM (自己組織化マップ) でのクラスター メンバーシップの決定
また、時系列データのクラスタリングが必要なプロジェクトにも取り組んでいます。クラスタリングの目的で MATLAB で動作する SOM ツールボックスを使用していますが、「どのデータがどのクラスタに属しているかをどのように判断できますか?」という問題に悩まされています。SOM は、データセットからデータ サンプルをランダムに選択し、各データ サンプルの BMU を見つけます。私の知る限り、SOM アルゴリズムでは、データ サンプル識別子はデータの次元とは見なされません。その場合、どうすればサンプルを追跡できますか? som_bmus
それがこの問題を解決するとは思わない。SOM ツールボックスに含まれる機能を変更せずにそれを行う方法はありますか?
machine-learning - Kohonen 自己組織化マップ: ニューロン数とグリッド サイズの決定
SOM を使用してクラスター分析を実行しようとしている大規模なデータセットがあります。データセットは巨大(~ 数十億レコード) であり、最初にニューロンの数と SOM グリッドのサイズをどうすべきかわかりません。ニューロンの数とグリッド サイズの推定について説明している資料へのポインタは、非常に高く評価されます。
ありがとう!
machine-learning - 長方形マップの U マトリックス
このサイトを含む多くの場所で U-Matrix について読みました。U-Matrix の最適な説明は、 U-Matrix が適切に計算される方法に関する正しい情報がほとんどない (元の論文はまったく役に立たない)理由の説明とともに、このサイトのここにあります。
上記の質問に対する答えは、六角形マップの概念を完全に説明しています。しかし、リンクされた質問への回答で U マトリックスを計算するロジックは、マップが長方形の場合には当てはまりません。
たとえば、以下に示すように 3 x 3 の長方形の格子を考えてみましょう。
上記の格子を使用して、以下に示すように U-Matrix を計算できます。
黄色の四角は、青色の四角間の距離です。黄色の四角については確かです。周囲の平均または中央値のみを取得する必要があるため、青色の正方形についても確信があります。
だから私の質問は:赤い四角を計算する方法?
上記で引用した前の質問で言及したものを含むいくつかの情報源を見つけました。長方形の U マトリックスについて私が得た最良の説明は次のとおりです。
説明 1 -> この論文では、著者は赤い四角の計算方法を完全には説明していません。周囲の平均を取る必要があることを説明するだけです。これは明確ではなく、私の意見では適切ではありません(以下を参照)
説明 2 -> この論文では、著者は赤い四角を計算する方法を明確に述べていますが、彼らが提示した論理には欠陥があるようです。
上記が適切ではないかもしれない理由の私の説明
説明 1 で述べたように、周囲の平均を取って赤い四角を計算すると、青い四角の計算が直接影響を受けます。たとえば、U-Matrix の青い正方形の数字 1 の値を計算することを検討してください。その周囲の平均を取る場合、距離 (1,2) 、(1,4) および (1,5) が必要です。対応する赤い四角を (1,5) で塗りつぶすと、(2,4) を計算していないため、青い四角 4 の計算は間違っており、同じ赤い四角がそれを持つ場所になるはずです。したがって、(1,5) と (2,4) の加算を 2*(1.414...) で割る式は、平均に属さない成分があるため機能しません。青い正方形 1 の場合、(2,4) の距離部分はそこに属しません。
2 番目の論文の説明を使用してプログラムしましたが、単純なデータ セットに対して生成された U マトリックスは満足のいくものではありません。以下に示すように、特定のノードの周囲の平均距離は、同じデータセットの U マトリックスよりも優れたパフォーマンスを発揮します。(画像は U-Matrix の後に平均が続きます)
python - Python での自己組織化マップの視覚化
自己組織化マップ (SOM) など、教師なし学習ネットワークの視覚化とアニメーション化を扱う Python パッケージはありますか? matplotlib にコードがあるかどうかを期待しています。
r - R: 自己組織化マップ: ガウス近傍関数と非線形学習率
私は SOM と、最良のクラスタリング結果を得る方法に取り組んできました。1 つの方法は、多くの実行を試みて、二乗誤差の合計内で最小のクラスタリングを選択することです。
ただし、ランダムな値を初期化していくつかの試行を行うだけでなく、適切なパラメーターを選択したいと考えています。「Influence of Learning Rates and Neighboring Functions on Self-Organizing Maps」(Stefanovic 2011) を読みましたが、近傍関数と学習率のどのパラメーターを選択すればよいかわからない場合は、ガウス分布を選択するのがおそらく最良の選択肢であるとのことです。関数と非線形学習率。
私のデータは時系列です:
これには、それぞれ 50 の値を持つ 300 の観測値があります。100 個の観測値は、それぞれがより類似する傾向があります。
私はkohonenパッケージで作業しています。
コード:
10 から 22 の間の値を持つクラスターが得られます。これは観測に似ています
ガウス近傍関数と逆時間学習率を提供する「som」パッケージも試しました。
ここでは、値が 15 ~ 18 のクラスターを取得するため、すべてのクラスターが「縮小」して、より類似したものになります。異なる入力シリーズで同じ現象が発生します
私の2つの質問:
1) ガウス近傍関数と非線形学習率を備えた良好なクラスターが得られると言われているにもかかわらず、som パッケージを使用した自己組織化マップのクラスターが非常に類似しており、はるかに小さい範囲に縮小するのはなぜですか?
2)適切なクラスターを取得するために、ガウス近傍関数と非線形学習率でこの範囲が縮小するのをどのように回避できますか?
python - while ループの変数は変化しません
このチュートリアルのように、Python で自己組織化マップを作成しています。部分的には機能しますが、while ループの 1 つで奇妙な問題に遭遇しました。問題部分のコードは次のとおりです。
radius
最初は各ピクセル反復で 15 に設定されており、半径に応じて r、g、b 値を設定し、それを減らして新しい r、g、b 値を設定するという考え方です。半径の計算はアルゴリズムとは異なりradius = radius - 1
ますが、単純なものでテストしたかったことに注意してください。
私の問題は、1 番目と 3 番目print(radius)
で期待値 15,14,13,12 などを取得することです。しかし、中間では常に初期値である 15 を取得します。radius
他のポイントでは変化するのに、その時点では変化しない理由がわかりません。どんな助けでも大歓迎です。
neural-network - 自己組織化マップを使用したデータ内のクラスター数のカウント
私は大まかにSOMを知っており、そのネットワークをトレーニング済みデータのさまざまなクラスターにマッピングしています。SOMを使ってクラスタ数をカウントする実装方法は? ここでは KNNL ライブラリを使用して SOM を実装します。そのデモでは、トレーニングとテストの方法のみが示されています。クラスター数をカウントするためにどのように実装できますか? クラスターのカウントにも DBSCAN を使用できることはわかっています。しかし、最初に、クラスタ カウント用に SOM を実装したいと思います。私の入力データは、次のような 2D 空間のポイントを表す 2D データです。