【发布时间】:2014-09-04 12:32:05
【问题描述】:
我正在对一个大矩阵应用非负矩阵分解 (NMF)。本质上,NMF 方法执行以下操作:给定一个 m × n 矩阵 A,NMF 分解为 A = WH,其中 W 是 m × d,H 是 d × n。 ProjectedGradientNMF 方法在 Python 包 Sklearn 中实现。我希望算法同时返回 W 和 H。但它似乎只返回 H,而不是 W。再次将算法应用于 AT(转置)可以给我 W。但是,我想避免计算它两次,因为矩阵 ix 非常大。
如果你能告诉我如何同时获得 W 和 H,那就太好了!下面是我的代码:
from sklearn.decomposition import ProjectedGradientNMF
import numpy
A = numpy.random.uniform(size = [40, 30])
nmf_model = ProjectedGradientNMF(n_components = 5, init='random', random_state=0)
nmf_model.fit(A)
H = nmf_model.components_.T
【问题讨论】:
-
能否再次将该算法应用于 A.T(转置)真的给出 W 吗?我无法验证它。
标签: python matrix machine-learning scikit-learn