非负矩阵分解:如何预测新条目的值?

Non Negative Matrix Factorization: How to predict values for a new entry?

我目前的理解:
我试过阅读一些关于 NMF 的论文和链接。这一切都在谈论我们如何将 MxN 矩阵拆分为 MxR 和 RxN 矩阵(R

问题:
我有一个用户列表(U)和每个用户的一些任务(A)。现在我使用 NMF 拆分这个矩阵 (UxA)。我得到 2 个矩阵 UxR 和 RxA。我如何使用这些来预测新用户 (U') 必须拥有的任务 (A')?

任何帮助将不胜感激,因为我在尝试搜索答案后无法理解这一点。

附带问题和意见基于:
另外,如果有人可以根据他们的经验告诉我,他们是如何选择 R 的,特别是当分配数量在 50,000 或十万左右时。我一直在使用 scikit-learn 库尝试这些

编辑: 这可以简单地使用 model.inverse_transform(model.transform(User'))

你可以试试把这个问题当成推荐人。您想将矩阵 X 近似分解为两个非负矩阵 U 和 V。

https://cambridgespark.com/content/tutorials/implementing-your-own-recommender-systems-in-Python/index.html

对于 pyothn scikit-learn,您可以使用: http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.NMF.html

from sklearn.decomposition import NMF
model = NMF(n_components=2, init='random', random_state=0)
W = model.fit_transform(X)
H = model.components_

其中 X 是您要分解的矩阵。 W和H是非负因子

要预测新用户(U')的任务(A'),您只需使用WH'来完成maitrx