問題タブ [nmf]
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 - MATLAB nnmf() - 大規模な用語ドキュメント マトリックス - メモリと速度の問題
大きな用語文書行列があり、matlab が提供する非負行列因数分解関数を使用したいと考えています。問題は、最初の繰り返しの後、メモリ使用量が急速に上昇してトップに達し (私のシステムには 6GB あります)、一方で CPU 使用率レベルが非常に低く (約 1%-5%) になることです。システム全体がクラッシュしたかのように動作し、何年も待った場合にのみ、2 回目の反復が終了します。(良い結果を得るには、さらに多くの反復が必要であることに注意してください)。
質問:
誰かがこれを経験したことがある場合、または私のものよりもさらに大きな行列で nnmf() を実行したことがある場合は、言及された問題を実際にどのように克服したかを知りたいです。
また、これを小さなマトリックス (約 7000x1800) で実行しましたが、問題はありませんでした。用語とドキュメントの行列には多数のゼロ要素が含まれており、保存に必要なスペースを減らすのに役立つため、疎行列を使用します。たとえば、私の場合、Term-Document マトリックスには14608 * 18828 = 275039424
要素とsum(sum(spa~=0)) = 1312582
ゼロ以外の要素があります。
python - 非負行列因数分解 (NMF) を高速に実行するための優れたライブラリはありますか?
形状が570000*3000の疎行列があります。nimaで NMF を実行しようとしました (デフォルトの nmf メソッドを使用し、max_iter
65 に設定しました)。ただし、nimfa は非常に遅いことがわかりました。より高速なライブラリを使用して NMF を実行した人はいますか?
scikit-learn - データを予測するために、Pipleline と MinMaxScaler + NMF を正しく使用するにはどうすればよいですか?
これは非常に小さな sklearn スニペットです。
次のエラーが表示されます。
この質問によると: MinMaxScaler を使用してテスト データを 0 と 1 にスケーリングする
私はこれが原因であることを知っています
これは、私のテスト データの最低値が訓練データよりも低く、その中で最小最大スケーラーが適合したためです。
しかし、私は疑問に思っています、これはバグですか?MinMaxScaler (すべてのスケーラー) は、予測を行う前に適用する必要があるようですが、以前に適合したトレーニング データに依存するべきではありません。
または、パイプラインで前処理スケーラーを正しく使用するにはどうすればよいですか?
ありがとう。
python - 保存された W 行列を使用した分類のための行列分解の適用
トピック分析を実行するために、tf-idf 入力に対して NMF 分解を実行しています。
これは、トピックから用語への割り当てで構成されるモデル定義であるWと、ドキュメントからトピックへの割り当て行列であるHを返します。
これまでのところ、H を使用して、トピックのリストへの用語頻度による関連性に基づいてドキュメントを分類できます。トピックのリストは、用語頻度との関連性にも基づいています。
後で再適用できるように、トピック用語の関連付けをディスクに保存したいと思います-ここで説明されている方法 [ https://stackoverflow.com/questions/8955448]を採用して、W の疎行列の再表現を保存します.
私が今やりたいことは、同じプロセスを実行し、トピック定義行列 W のみを修正することです.
ドキュメントでは、次の行に沿って呼び出しパラメーターに W を設定できるようです。
そして、私はこれを試しましたが、うまくいかないようです。
異なるサイズのボキャブラリを使用して W マトリックスをコンパイルし、それをapplyModel
関数に入力することでテストしました。結果のマトリックスの形状は、W モデルによって定義される必要があります (または、それが私が意図していることです)。しかし、そうではありません。
この質問の短いバージョンは、次のとおりです。マトリックス分解から生成されたトピックモデルを保存して、最初に生成したものとは異なるドキュメントセットを分類するために使用できるようにするにはどうすればよいですか?
つまり、V = WHの場合、 VとWが与えられた場合、どのようにHを返すことができますか?
r - RでNMFアルゴリズムのソースコードを表示するには?
私はRを使用するのはかなり初めてです。method
関数nmf()
が呼び出されたときにパラメーターとして使用される新しいNMFアルゴリズムをプログラムする必要があります。
手始めに、組み込みアルゴリズムのソース コードを brunet、KL、lee として表示したいのですが、見つかりません。誰か助けてくれませんか?
r - R NMF パッケージ: サンプル分類を抽出する方法は?
NMF R パッケージでは、 consensusmap() を使用して出力を視覚化できます。プロットは、どのサンプルが「コンセンサス」トラックのどのクラスターに属しているかを示しています。
このサンプル分類を抽出して、次のようなデータ フレームを取得したいと思います。
ConsensusClusterPlus パッケージでは、これは簡単です。results$consensusClass を引き出すだけです。NMF パッケージの同様のソリューションが見つかりません。生のプロット データを見ようとしましたが、複雑すぎて意味を抽出できません。
ここに問題の図があります。どの「ステータス」がどの「コンセンサス」内にあるかを調べる必要があります。
python - IndexError: sklearn で NMF を使用すると範囲外です
データのコーパスからトピック モデルを作成しようとしています。このコードは NMF を適切に使用して、解析されたデータからタスクの数のトピックを生成できますが、以下に示すように、コーパスの長さが 20 になるとコードが壊れます。
私はまだ sklearn ツールセットに慣れ親しんでいるので、コードの多くがさまざまな例からまとめられているため、これは私の単純な見落としである可能性があることを認めます.
このインデックスエラーの正確な原因は何ですか?どうすれば修正できますか?
python - Python コードで rpy2 を使用して R 関数を引数として渡す方法
素晴らしいNMFパッケージ用のPythonインターフェースを作成しようとしています- https://cran.r-project.org/web/packages/NMF/NMF.pdf (Pythonオプションよりもはるかに柔軟であるため)。ここまでは順調ですね。
私はこのようなものを思いつきます:
それは魅力のように機能します。Methods は、私が使用できる可能なアルゴリズムのリストです。
nmfアルゴリズム()
[1]「ブリュネ」「KL」「リー」「フロベニウス」「オフセット」
[6] 「nsNMF」「ls-nmf」「pe-nmf」「siNMF」「snmf/r」
[11] 「snmf/l」
その他の可能性は、NMF のドキュメントで説明されているように、カスタム アルゴリズムを使用することです。
を使用してこれを再現するにはどうすればよいrpy2
ですか?
私は次のようなことを試しました:
しかし、それは魔法を作りませんでした =(
NMF アルゴリズム - キー「key=function (x、seed、scale.factor >= 1) に一致するエントリがありません」
{
pca <- prcomp(t(x), retx = TRUE)
factorization.rank <- nbasis(シード)
猫(種)
基礎(シード) <- abs(pca$rotation[, 1:factorization.rank])
coef(シード) <- t(abs(pca$x[, 1:factorization.rank]))/scale.factor
戻る(種)
}」をレジストリに追加します。
次のいずれかを使用します: 'brunet'、'Frobenius'、'KL'、'lee'、'ls-nmf'、'.M#brunet'、'nsNMF'、'offset'、'pe-nmf'、'.R #brunet', '.R#lee', '.R#nsNMF', '.R#offset', 'siNMF', '.siNMF', 'snmf/l', 'snmf/r'.
warnings.warn(x, RRuntimeWarning)
誰かがここで私を助けてくれるだろうか?