問題タブ [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.

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

python-3.x - NMF (scikit-learn) を使用して構成データを処理する方法

i 番目の行が i 番目のサンプルの要素比率である組成データ行列 V があります。次のように行列分解を見つけます。

ここに画像の説明を入力

非負行列因数分解 (NMF または NNMF) を使用してこの問題を解決するにはどうすればよいですか?

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

python - 非常に大規模で非常にまばらな非負行列因数分解

非常に大きくてまばらなマトリックス (531K x 315K) があり、セルの総数は約 1670 億です。ゼロ以外の値は 1 のみです。ゼロ以外の値の総数は約 45K です。問題を解決するための効率的な NMF パッケージはありますか? そのためのパッケージがいくつかあることは知っていますが、それらは小さなサイズのデータ​​マトリックスに対してのみうまく機能しています。どんなアイデアでも役立ちます。前もって感謝します。

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

r - カスタマイズされた KIM 機能選択機能

関数 extractFeatures fromNMF packageは、特徴が次の両方の基準を満たしている場合にのみ、次の方法を使用して特徴を選択できます。

\hat{\mu} + 3 \hat{\sigma}ここで、\hat{\mu}とはそれぞれスコア\hat{\sigma}の中央値と中央絶対偏差 (MAD) です。

基底成分への最大寄与は、すべての寄与 (つまり、W のすべての要素) の中央値よりも大きくなります。

最初の基準のみをデータマトリックスに適用するこの関数をRでどのように書くことができますか?

キム H とパク H (2007)。「マイクロ アレイ データ解析のための負でない制約付き最小二乗法を交互に使用する疎な非負行列因数分解」。Bioinformatics (Oxford, England)23 (12)、pp. 1495-502。ISSN 1460-2059、、。

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

python - SKLearn NMF 対カスタム NMF

非負行列分解を使用してレコメンデーション システムを構築しようとしています。モデルとしてscikit-learn NMFを使用して、データを適合させた結果、特定の損失 (つまり、再構成エラー) が発生しました。次に、 inverse_transformメソッドを使用して、新しいデータのレコメンデーションを生成します。

TensorFlow で構築した別のモデルを使用して同じことを行います。トレーニング後の再構築エラーは、以前に sklearn のアプローチを使用して得られたエラーに近いものです。ただし、潜在的な要因は互いに類似しておらず、最終的な推奨事項もありません。

私が認識している 2 つのアプローチの 1 つの違いは次のとおりです。sklearn では Coordinate Descent ソルバーを使用していますが、TensorFlow では Gradient Descent に基づく AdamOptimizer を使用しています。他のすべては同じようです:

  1. 使用される損失関数はフロベニウス ノルムです
  2. どちらの場合も正規化なし
  3. 同じ数の潜在次元を使用して同じデータでテスト

私が使用している関連コード:

1. scikit-learn アプローチ:

2. TensorFlow アプローチ:

私の質問は、これら 2 つのアプローチによって生成された推奨事項が一致しない場合、どちらが正しいかをどのように判断できるかということです。私のユースケースに基づくと、sklearn の NMF は良い結果をもたらしていますが、TensorFlow の実装はそうではありません。カスタム実装を使用して同じことを達成するにはどうすればよいですか?