2015-04-15 10 views
6

मैं एक कोड वर्तमान में http://www.quuxlabs.com/blogsklearn मैट्रिक्स गुणन उदाहरण

यह अच्छा परिणाम देता है दिया उपयोग कर रहा हूँ। और मैं स्पष्ट रूप से देख सकता हूं कि मैट्रिक्स में क्या परिवर्तन हुआ है।

इसके अलावा मैंने sklearn.decomposition.NMF पर sklearn लाइब्रेरी का उपयोग करने की कोशिश की लेकिन परिणामस्वरूप मुझे एक ही इनपुट के साथ पर्याप्त नहीं मिला। हो सकता है कि मुझसे कुछ छूट रहा हो।

from sklearn.decomposition import NMF , ProjectedGradientNMF 
R = [ 
    [5,3,0,1], 
    [4,0,0,1], 
    [1,1,0,5], 
    [1,0,0,4], 
    [0,1,5,4], 
    ] 
R = numpy.array(R) 
nmf = NMF(beta=0.001, eta=0.0001, init='random', max_iter=2000,nls_max_iter=20000, random_state=0, sparseness=None,tol=0.001) 
nR = nmf.fit_transform(R) 
print nR 
print 
print nmf.reconstruction_err_ 
print 

यह बाहर निकलने मैट्रिक्स में/भरा मूल्यों के रूप में मैं ब्लॉग में दिए गए कोड का उपयोग कर देख सकते हैं बनाए रखने नहीं है -

यहाँ मेरी नमूना कोड है।

क्या कोई मुझे समझने में मदद कर सकता है!

उत्तर

14

हमम ... मेरे बहुत गूंगा !!! मैं nmf.py के माध्यम से चला और पता चला कि fit_tranform केवल डब्ल्यू वापस आती है और उन लोगों के नए आर

from sklearn.decomposition import NMF , ProjectedGradientNMF 
R = [ 
    [5,3,0,1], 
    [4,0,0,1], 
    [1,1,0,5], 
    [1,0,0,4], 
    [0,1,5,4], 
    ] 
R = numpy.array(R) 
nmf = NMF() 
W = nmf.fit_transform(R); 
H = nmf.components_; 
nR = numpy.dot(W,H) 
print nR 
+0

देता है आप बेवकूफ नहीं हैं nmf.component_ एच डॉट उत्पाद के मूल्य मिलता है। अगर हमें स्रोत पढ़ना है तो दस्तावेज अच्छा नहीं है। (इसके अलावा हमें हमेशा कोड पढ़ना चाहिए और यह समझना चाहिए कि यह ब्लैक बॉक्स की तरह व्यवहार करने के बजाए कैसे काम करता है) –

+1

यह एक पुराना उत्तर प्रतीत होता है। क्या आपने देखा कि http://www.quuxlabs.com/blog और sklearn कोड के परिणाम 0 मानों के लिए अलग हैं? – futurenext110

संबंधित मुद्दे