现在尝试使用Spark mllib ALS(" trainImplicit")一段时间。 想了解
1.为什么我在预测中得到的评分值超过1?
2.是否需要规范用户产品输入?
样本结果:
[评级(用户= 316017,产品= 114019,评级= 3.1923),
评级(用户= 316017,产品= 41930,评级= 2.0146997092620897) ]
在文档中,提到预测的评级值将在0-1左右。 我知道评级值仍然可以用在推荐中,但如果我知道原因那就很好。
答案 0 :(得分:1)
ALS trainImplicit()中的成本函数不会对预测评级值施加任何条件,因为它取差值的大小为0/1。所以,你也可能会发现一些负面价值。这就是为什么它说预测值在[0,1]附近不一定在其中。
只有一个选项可以设置非负分解,这样您就不会在预测评级或特征矩阵中得到负值,但这似乎会降低我们案例的性能。