Spark mllib:implicitTrain和explicitTrain之间的区别

时间:2017-01-15 17:02:18

标签: apache-spark machine-learning apache-spark-mllib recommendation-engine collaborative-filtering

我尝试使用显式列车功能根据用户偏好(派生偏好)推荐产品,并且MSE对于训练和测试数据集都足够好。 (拉姆达= 0.01)

当我在train中使用相同的数据时,对于测试和训练数据集,MSE增加到20倍。(lambda = 0.01,alpha = 1.0)

现在我明白这些是不同的算法但我如何判断隐含是否比明确更好?

1 个答案:

答案 0 :(得分:3)

基本上,隐式列表和显式列表之间的区别在于,当您只有与该项目相关的隐式操作以便进行推荐时,可以使用隐式列表。视图,点击,购买,喜欢,分享等。当您对要推荐的项目有明确的费率时,可以使用显式。 现在谈论这个算法在该领域的应用我也得到了与你在做电影推荐系统时相同的情况,我无法解释为什么隐式在显式数据集训练时得到的结果比显式更好。在我看来,MSE是一种合适的绩效衡量标准。你可以做的一件事是审查spark mllib的实现并尝试理解为什么:)。 对不起如果我没有回答你的话。