【发布时间】:2015-05-23 11:30:42
【问题描述】:
我正在尝试在 Spark 中实现的协作过滤算法,但遇到了以下问题:
假设我用以下数据训练一个模型:
u1|p1|3
u1|p2|3
u2|p1|2
u2|p2|3
现在如果我用以下数据测试它:
u1|p1|1
u3|p1|2
u3|p2|3
我从未看到用户“u3”的任何评分,大概是因为该用户没有出现在训练数据中。这是因为冷启动问题吗?我的印象是这个问题只适用于新产品。在这种情况下,我会期待对“u3”的预测,因为训练数据中的“u1”和“u2”具有与“u3”相似的评级信息。这是基于模型和基于内存的协同过滤的区别吗?
【问题讨论】:
-
您是否能够将用户和产品作为非整数进行训练?当我尝试以这种格式训练时,我收到错误说明:Rating, (int(self.user), int(self.product), float(self.rating))
-
看起来我们遇到了类似的问题:如何在不重新训练整个模型的情况下预测新用户?
标签: apache-spark apache-spark-mllib collaborative-filtering