【问题标题】:Rating prediction in non negative matrix factorization非负矩阵分解中的评分预测
【发布时间】:2017-04-07 19:05:59
【问题描述】:

我正在关注此博客http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-in-python/(此处还附上矩阵)使用矩阵分解进行评级预测。最初我们有一个稀疏的用户电影矩阵 R。

然后我们应用 MF 算法来创建一个新矩阵 R',它是 2 个矩阵 P(UxK) 和 Q(DxK) 的乘积。然后,我们将 R 和 R' 中给出的值的误差“最小化”。到目前为止一切都很好。但在最后一步,当矩阵被填满时,我不太相信这些是用户将给出的预测值。这是最终的矩阵:

这些实际上是“预测”评级的理由是什么?另外,我打算使用 P 矩阵 (UxK) 作为用户的潜在特征。我们能否以某种方式“证明”这些实际上是用户的潜在特征?

【问题讨论】:

    标签: data-science collaborative-filtering matrix-factorization


    【解决方案1】:

    使用为每个用户获得的向量作为潜在特征向量的理由是,使用这些潜在特征的值将最小化预测评分与实际已知评分之间的误差。 p>

    如果您查看您发布的两个图表中的预测评级和已知评级,您会发现两者共有的单元格中的两个矩阵之间的差异非常小。示例:U1D4 在第一个图中为 1,在第二个图中为 0.98。

    由于特征或用户潜在特征向量在已知评级上产生了良好的结果,我们认为它可以很好地预测未知评级。当然,我们使用正则化来避免过度拟合训练数据,但这是一般的想法。

    【讨论】:

      【解决方案2】:

      要评估您的潜在特征向量有多好,您应该将数据分成训练、验证和测试。

      训练集是您用来学习潜在特征的观察评级。验证集用于在学习期间调整模型参数,但适当的学习和测试集用于评估学习到的潜在特征。您可以简单地留出一定百分比的观察样本用于验证和测试。如果您的评级带有时间戳,那么自然的选择方法就是使用最新的样本作为验证和测试。

      更多关于拆分数据的细节在这里https://link.medium.com/mPpwhdhjknb

      【讨论】:

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