apache-spark - Apache Spark ALS 建议评级值高于范围

标签 apache-spark machine-learning apache-spark-mllib collaborative-filtering

我已经运行了一个小的 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/

相关文章:

scala - 如何在 ScalaTest 测试中正确使用 Spark?

python - 无法使用 CNN 训练手势 (ASL) 模型

apache-spark - ALS 模型 - 预测的 full_u * v^t * v 评分非常高

python - Pyspark BinaryClassficationROC 下的指标区域

json - 如何使用Spark SQL解析对象的JSON数组

apache-spark - 如何在单个 Spark 应用程序中启动多个流式查询?

apache-spark - 如何用Spark写入远程Elasticsearch节点?

machine-learning - 使用哪些数据结构对经过训练的语音模型进行编码?

python - tf.train.shuffle_batch_join 和 tf.train.shuffle_batch 之间的区别

scala - Spark DataFrame 不尊重模式并将所有内容视为字符串