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

我的当前理解:
我尝试阅读了一些关于NMF的论文和链接。它们都讨论了如何将一个MxN矩阵分解为MxR和RxN矩阵(R

问题:
我有一组用户(U)和每个用户的一些任务(A)。现在我使用NMF分解这个矩阵(UxA)。我得到了两个矩阵UxR和RxA。我如何使用这些矩阵来预测一个新用户(U’)应该拥有的任务(A’)?

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

附带问题和基于意见的:
如果有人能根据他们的经验告诉我,他们是如何选择R的,特别是当任务数量达到5万或十万的数量级时。我一直在使用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

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

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

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

要预测一个新用户(U’)的任务(A’),你只需使用WH’来完成矩阵

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注