我已经运行了一个小的 ALS 推荐系统程序,如图所示 关于 Apache Spark website它利用 MLlib。当使用评分为 1-5 的数据集(我使用了 MovieLens 数据集)时,它会提供预测评分超过 5 的推荐!
我在小型测试中发现的最高值是 7.4。显然,我要么误解了代码的用途,要么出了问题。我研究过潜在因素推荐系统,印象中 Spark Mlib ALS 实现是基于 this one .
为什么它返回的收视率会高于可能的收视率?这没有任何意义。
我是否误解了算法或者程序有缺陷?
最佳答案
你正在看正确的论文,但是,我认为你期望算法做一些它不打算做的事情。它会生成输入的低阶近似值作为两个矩阵的乘积,但矩阵相乘不会限制输出值。
您可以对值进行钳位或舍入。您可能不希望这样做,因为您会获得有关预测评级比 5 强多少的额外信息。我认为算法假设最大可能值是输入中的最大观察值在技术上也是不可能的。
关于apache-spark - Apache Spark ALS 建议评级值高于范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29051520/