【问题标题】:Non Negative Matrix Factorization: How to predict values for a new entry?非负矩阵分解:如何预测新条目的值?
【发布时间】:2018-02-16 09:10:08
【问题描述】:

我目前的理解:
我尝试阅读一些有关 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')) 来完成

【问题讨论】:

    标签: matrix machine-learning scikit-learn factorization dimensionality-reduction


    【解决方案1】:

    您可以尝试将此问题视为推荐人。您想将矩阵 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

    【讨论】:

      猜你喜欢
      • 2017-04-07
      • 2014-09-04
      • 1970-01-01
      • 2013-05-10
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2017-07-10
      相关资源
      最近更新 更多