問題タブ [spectral]

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.

0 投票する
4 に答える
23716 参照

python - Python scikit-learn で毎回実行した後のクラスタリング結果の変化

たくさんの文章があり、scikit-learn スペクトル クラスタリングを使用してそれらをクラスタリングしたいと考えています。コードを実行しましたが、問題なく結果が得られました。しかし、実行するたびに異なる結果が得られます。これがイニシエーションの問題であることはわかっていますが、修正方法がわかりません。これは、文で実行される私のコードの一部です:

データは文のリストです。コードを実行するたびに、クラスタリングの結果が異なります。スペクトル クラスタリングを使用して一貫した結果を得るにはどうすればよいですか。Kmeanにも同じ問題があります。これはKmeanの私のコードです:

あなたの助けに感謝します。

0 投票する
1 に答える
5392 参照

python - sklearn と大きなアフィニティ マトリックスを使用したスペクトル クラスタリング

scikit-learn が提供するスペクトル クラスタリング メソッドを使用して、データセット ( 16000のみ)の行を集計しようとしています。私の問題は、多かれ少なかれ3ギガバイトを割り当てるアフィニティマトリックス(16000x16000フロートマトリックス)を事前計算した後に発生します(最大で8 GBに到達できます)、そのマトリックスで呼び出されるメソッドは、argpackソルバーを使用して、より多くのメモリを必要としますそして、CPU はメモリの内外で物事を交換しようとして多くの時間を失うため、計算速度が低下して死に至ります。メソッドの前にガベージコレクターを呼び出そうとしましたが、成功しませんでした:

何が起こっているかの正確なスキームを取得するにはどうすればよいですか? これは既知の問題ですか? 箱から出してスペクトルクラスタリングを実行するためのPythonの代替手段はありますか?

必要に応じて、最小限の実例を投稿できます。

更新 lobpcg ソルバーに関しては間違っていました。最初はすべてのメモリを使用しているように見えますが、5Gb 前後で安定し、プロセスは続行しますが、別の問題が発生します。計算によって数値の不正確さが生じ、最終的に Nan が生成されるか、次のようなエラーが発生するようです (アフィニティ マトリックスが少し変化すると、発生するエラーが変化します。以下を参照してください)。

私のアフィニティ メトリックはガウス カーネルexp(-((X_1 - x_2)^2/2*sigma^2))であり、シグマにさまざまな値を試すと、結果が大きく異なります。一部のエントリがゼロに近い場合に不正確さが生じる可能性があることは理解できますが、シグマ (= 5.0) に大きな値を使用し、代わりに 1.0 に近づけた場合はそうではありません。

今、私はいくつかの点を見逃しているか、その過程で何か間違ったことをしていると思っているので、この質問を新しい目的で更新しています.

参考までに、これはアフィニティ マトリックスを計算する方法です。

wheredata_sliceは、行がインスタンスであるnumpy配列でありself._sigma、ガウスシグマパラメーターを格納します。

0 投票する
0 に答える
110 参照

matlab - MATLAB: 指定されたモードでの FFT

MATLAB を使用して、ある種のスペクトル法を実装したいと考えています。アイデアは次のとおりです(動作している例について説明します)。

  1. ディリクレ (およびノイマン、および周期) 境界は、次のフーリエ空間の固有値につながります。k=n*pi/L

  2. フーリエ空間のすべての線形演算子を離散化された k 値に射影します。

    L = -D*(k.*k)(拡散のみ)

  3. プロパゲータを次のように定義します。P = exp( dt * L )

  4. による時間の進化を繰り返し計算するuh_{n+1} = uh_n * P

  5. 値を保存するたびに、計算された値を実空間に返しますifft( uh )

私の質問は別の境界条件に関するものです。

私の場合、ロビン境界条件があります。したがって、固有値は、形式などの奇妙な方程式によって定義されtan( x ) = xます。それらを計算する問題は解決されます。

私は値を持っているので、ステップ番号。2と3も簡単です

Pフーリエ変換されたベクトルに適用するには、 myが同じ固有値を使用していることを確認する必要がありますが、これuhデフォルトでは当てはまりません。uh = fft(u)

既定では、MATLAB は fft に等距離モードを使用します。

これには簡単なトリックはありますか?

それとも、私の考えに何か間違いがありますか?

0 投票する
0 に答える
764 参照

python - Nystrom 近似法の評価方法は?

大規模な行列のNystrom 近似法を評価したいのですが、論文で述べたように、これは Schur 補数を計算することで実行できますが、大規模なデータセットでは計算コストが高すぎます。私はスペクトルクラスタリングを実行する方法を使用しているので、重心(埋め込みベクトルのk平均クラスタリング後)と埋め込みベクトルの距離を見つけることで、そのパフォーマンスを評価できると考えていました。サブセット サイズ (A 行列) のさまざまな選択に対して Nystrom メソッドがどのように実行されるか。

0 投票する
1 に答える
94 参照

matlab - MATLAB のスペクトル導関数、端点問題

次の行を使用して、125 バンドの a スペクトルの導関数を取得しようとしています。

問題は次のステップにあります。元のスペクトルと数値的に、またプロットして視覚的に比較したいのですが、df のサイズは 124 ですが、元の波長は 125 です。質問は、最初または最後のバンドを削除する必要がありますか? ただし、一部のスペクトル解析ソフトウェアの出力はサイズを変更していません。バンドの平均を取ることも機能せず、グラフがクレイジーな動作を示します。