我运行了一个ALS推荐系统程序,正如在阿帕奇星火网站上找到的那样,它使用了MLlib。当使用等级为1-5的数据集(我使用了MovieLens数据集)时,它给出了预测评分超过5的建议!
我在我的小测试中发现的最高值是7.4。显然,我要么误解了代码的意思,要么就是出了问题。我对潜在因素推荐系统进行了研究,给人的印象是Spark的实现是基于这一个的。
为什么它会返回比可能的更高的评级?这没有任何意义。
我是否误解了算法,还是程序有缺陷?
发布于 2015-03-14 22:04:07
你看的是正确的论文,但是,我想你是在期待算法去做一些它不打算做的事情。作为两个矩阵的乘积,它产生了对输入的低秩近似,但与乘积矩阵无关的是输出值。
你可以夹住,或者包围这些值。你可能不希望它,因为你得到了额外的信息,有多少比5的预测评级是。我认为,从技术上讲,该算法也不可能假定最大可能值是输入中的最大观测值。
https://stackoverflow.com/questions/29051520
复制相似问题