【发布时间】:2017-11-09 08:30:56
【问题描述】:
我正在使用 Scala 进行编程,但语言在这里并不重要。
在这种情况下,隐式反馈协同过滤器 (ALS.trainImplicit) 的输入是产品的视图:
- Rating("user1", "product1", 21.0) //表示user1查看了 product1 的详细信息 21 次
- 评分("user2", "product1", 4.0)
- 评分("user3", "product2", 7.0)
但是输出(MatrixFactorizationModel.recommendProductsForUsers)是这样的:
- 评分("user1", "product1", 0.78)
- 评分("user2", "product1", 0.63)
输出中的值 0.78 和 0.64 看起来像是在 0 和 1 之间归一化的值,但输入中的值是 21、4、7 等。
我认为在这种情况下计算输入和输出之间的 MSE(均方误差)没有任何意义,就像我们在使用带有明确反馈的协作过滤器时所做的那样。
那么,问题来了,如何在使用隐式反馈时验证协同过滤器?
【问题讨论】:
标签: scala apache-spark apache-spark-mllib collaborative-filtering