sklearn矩阵因式分解examp

2024-05-03 09:41:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用当前在http://www.quuxlabs.com/blog给出的代码

结果很好。我能清楚地看到矩阵发生了什么变化。

我还试着在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

它并没有像我在博客中看到的那样在矩阵中维护现有的/填充的值。

有人能帮我理解吗!


Tags: 代码comhttpwww矩阵randomsklearnnr
1条回答
网友
1楼 · 发布于 2024-05-03 09:41:56

嗯。。。我真傻!!!我查了一下nmf.py,发现fit变换只返回W,而nmf.component得到H的值,它们的点积给出了新的R

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

相关问题 更多 >