【问题标题】:Apache Mahout - Generating a recommendation using EuclideanDistanceSimilarityApache Mahout - 使用 EuclideanDistanceSimilarity 生成推荐
【发布时间】:2015-04-03 23:45:45
【问题描述】:
我一直在使用 Mahout 库来实现推荐算法。我使用了EuclideanDistanceSimilarity 类,到目前为止我的结果似乎还不错。
我的DataModel currenty 包含 100 个项目的 500 个评分,这些项目按 1 到 5 的等级进行评分,例如
客户 itemID 评分
____1 ____2_____8
但是Apache Mahout API's 声明“请注意,距离没有以任何方式归一化;比较从不同域(例如不同的评级量表)计算的相似性是无效的。在一个域内,归一化没关系,因为它不会改变顺序。"
随着我获得更多客户和商品,这会影响结果的有效性/可靠性吗?
【问题讨论】:
标签:
mahout
euclidean-distance
mahout-recommender
【解决方案1】:
引用的重要部分是域:
只要您使用相同的 5 星评级量表添加更多数据,例如来自同一系统(域) 的客户和商品,就无需
规范化数据。
如果您开始添加来自其他系统的数据,例如使用7 星评级,您必须以某种方式标准化这些评级,以实现与您现有的 5 星等级的可比性。
让我再补充几句关于基于评级的推荐:
总的来说,您的方法很好。评分的唯一问题是,用户的评分往往完全不同。一个用户可能会为她喜欢的项目提交“3”,而另一个用户会分配“5”。因此,一些推荐者会尝试其他方法——例如将数字评分转换为布尔值,其中任何评分都将被视为对该项目的一般“兴趣”。
我强烈建议您获取一些关于您的数据集的统计信息 - 例如平均评分。如果这应该接近 1 或 5(意味着大多数评级要么非常差,要么非常好,并且分布不均),您可能需要尝试布尔方法...