Apache Mahout - 使用EuclideanDistanceSimilarity生成推荐

时间:2015-04-03 23:45:45

标签: mahout euclidean-distance mahout-recommender

我一直在使用Mahout库来实现推荐算法。我使用了EuclideanDistanceSimilarity类,到目前为止,我的结果似乎很好。

我的DataModel currenty包含500项评级,每项评分为1到5,例如

客户itemID评级

____ 1 ____ 2 _____ 8

然而Apache Mahout API's表示“注意距离没有以任何方式标准化;它无法比较从不同域计算的相似性(例如,不同的评级量表)。在一个域内规范化并不重要,因为它不会改变排序。

当我捕获更多客户和物品时,这是否会影响我的结果的有效性/可靠性?

1 个答案:

答案 0 :(得分:1)

引文的重要部分是: 只要您使用相同的5星评级量表从同一系统(域)添加更多数据(如客户和项目),就不需要  规范化数据。

如果您开始使用以下方法添加来自其他系统的数据一个 7星评级,你不得不 规范化 这些评级,以实现与现有5​​星级的可比性

让我再添加一些关于基于评级的建议的话:

一般来说,你的方法很好。评级的唯一问题是,用户倾向于以不同的方式评价。一个用户可以提交" 3"对于她喜欢的项目,而另一个将指定" 5"。因此,一些推荐人尝试其他方法 - 例如将数字评级转换为布尔值,其中任何评级都将被视为一般评级"兴趣"对项目。

我强烈建议您捕获有关数据集的一些统计信息 - 例如平均评分。如果这应该接近1或5(意味着大多数评级非常差或非常好并且分布不均匀),您可能想尝试布尔方法......