首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sklearn矩阵分解示例

sklearn矩阵分解示例
EN

Stack Overflow用户
提问于 2015-04-15 19:25:36
回答 1查看 9.9K关注 0票数 11

我使用的是http://www.quuxlabs.com/blog当前提供的代码

它提供了很好的结果。我可以清楚地看到矩阵中发生了什么变化。

此外,我还尝试在sklearn.decomposition.NMF上使用sklearn库,但使用相同的输入得到的结果还不够好。也许我错过了什么。

下面是我的示例代码:

代码语言:javascript
复制
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

它没有维护矩阵中的退出/填充的值,正如我使用博客中给出的代码所看到的那样。

有人能帮我理解一下吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-15 20:39:08

嗯..。我太傻了!我浏览了nmf.py,发现fit_tranform只返回W,nmf.component_得到H的值。其中的点积给出新的R。

代码语言:javascript
复制
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
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29648955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档