問題タブ [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.
python - 疎行列の scikit-learn 非負行列分解 (NMF)
Scikit-learn の非負行列因数分解 (NMF) を使用して、ゼロ エントリにデータが欠落している疎行列で NMF を実行しています。Scikit-learn の NMF 実装がゼロのエントリを 0 または欠落データと見なすかどうか疑問に思っていました。
ありがとうございました!
scikit-learn - 「cdnmf_fast import _update_cdnmf_fast から」sklearn 並列モジュールを使用すると、並列化が機能しません。
(初めて質問するので、タグや説明が間違っていると思われる場合は、教えてください、ありがとう!)
私は作業を行っており
、モジュールが別のモジュールを
Matrix Factorization
使用するモジュールを使用しています。
このモジュールはファイルからのものです
。この Web サイトでソース コードを確認
できます/sklearn/decomposition/cdnmf_fast.pyx
C 言語を使用していることがわかります。 with nogil:」なので、並列化を使用したに違いないと思います。したがって、次のようにテストするために同様のコードを記述します。sklearn.decomposition.nmf
from sklearn.decomposition.cdnmf_fast import _update_cdnmf_fast
cdnmf_fast.so
期待される結果は、X=X+VW*U=0+V-0=V です。ただし、結果は奇妙で、np.dot() よりもはるかに遅いです。次に、このコードを並列化コードではなく、通常の Python コードに変更します。結果は以前と同じです。したがって、その並列化が機能していないと確信しています。Xを変更しながらXを使用しているため、結果はもちろん間違っています。並列化が機能しない理由がわかりません。モジュールのバグなのか、インポートの仕方のせいなのか。
実際、これは sklearn.decomposition.nmf モジュールを使用するときに心配になります。このモジュールをいつ使用するか、その並列化も機能していないかどうかはわかりません。そのため、並列化がどのように機能するかを知りたいです。
ご協力ありがとうございました!