MLLib spark -ALStrain隐含值超过1

时间:2016-03-29 04:41:14

标签: apache-spark apache-spark-mllib

现在尝试使用Spark mllib ALS(" trainImplicit")一段时间。 想了解

1.为什么我在预测中得到的评分值超过1?

2.是否需要规范用户产品输入?

样本结果:

[评级(用户= 316017,产品= 114019,评级= 3.1923),

评级(用户= 316017,产品= 41930,评级= 2.0146997092620897) ]

在文档中,提到预测的评级值将在0-1左右。 我知道评级值仍然可以用在推荐中,但如果我知道原因那就很好。

1 个答案:

答案 0 :(得分:1)

ALS trainImplicit()中的成本函数不会对预测评级值施加任何条件,因为它取差值的大小为0/1。所以,你也可能会发现一些负面价值。这就是为什么它说预测值在[0,1]附近不一定在其中。

只有一个选项可以设置非负分解,这样您就不会在预测评级或特征矩阵中得到负值,但这似乎会降低我们案例的性能。