我关注了这个博客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‘.So中给出的值的误差“最小化”。但在最后一步,当矩阵被填满时,我不太相信这些是用户会给出的预测值。下面是最终的矩阵:

这些实际上是“预测”评级的依据是什么?此外,我计划使用P矩阵(UxK)作为用户的潜在特征。我们能以某种方式“证明”这些实际上是用户的潜在特征吗?
发布于 2017-07-04 04:55:08
使用为每个用户获得的向量作为潜在特征向量的理由是,使用这些潜在特征的值将最小化预测评级和实际已知评级之间的误差。
如果您查看您发布的两个图表中的预测评级和已知评级,您可以看到,在两者通用的单元格中的两个矩阵之间的差异非常小。示例: U1D4在第一张图中为1,在第二张图中为0.98。
由于特征或用户潜在特征向量在已知评级上产生良好的结果,我们认为它将在预测未知评级方面做得很好。当然,我们使用正则化来避免过度拟合训练数据,但这是一般的想法。
发布于 2022-02-02 19:06:05
为了评估你的潜在特征向量有多好,你应该把你的数据分成训练,验证和测试。
训练集是您用来学习潜在特征的观察评级。验证集在学习过程中用于调整模型参数,但适当的学习和测试集用于在学习后评估学习的潜在特征。您可以简单地留出一定百分比的观察样本用于验证和测试。如果你的评分有时间戳,这是一种自然的选择方式,但要使用最新的样本作为验证和测试。
有关拆分数据的更多详细信息,请单击此处https://link.medium.com/mPpwhdhjknb
https://stackoverflow.com/questions/40770108
复制相似问题