我一直在使用Mahout库来实现推荐算法。我使用了EuclideanDistanceSimilarity
类,到目前为止,我的结果似乎很好。
我的DataModel
currenty包含500项评级,每项评分为1到5,例如
客户itemID评级
____ 1 ____ 2 _____ 8
然而Apache Mahout API's表示“注意距离没有以任何方式标准化;它无法比较从不同域计算的相似性(例如,不同的评级量表)。在一个域内规范化并不重要,因为它不会改变排序。“
当我捕获更多客户和物品时,这是否会影响我的结果的有效性/可靠性?
答案 0 :(得分:1)
引文的重要部分是域: 只要您使用相同的5星评级量表从同一系统(域)添加更多数据(如客户和项目),就不需要 规范化数据。
如果您开始使用以下方法添加来自其他系统的数据一个 7星评级,你不得不 规范化 这些评级,以实现与现有5星级的可比性
让我再添加一些关于基于评级的建议的话:
一般来说,你的方法很好。评级的唯一问题是,用户倾向于以不同的方式评价。一个用户可以提交" 3"对于她喜欢的项目,而另一个将指定" 5"。因此,一些推荐人尝试其他方法 - 例如将数字评级转换为布尔值,其中任何评级都将被视为一般评级"兴趣"对项目。
我强烈建议您捕获有关数据集的一些统计信息 - 例如平均评分。如果这应该接近1或5(意味着大多数评级非常差或非常好并且分布不均匀),您可能想尝试布尔方法......