以下哪一项最适合(或广泛使用)在 mahout 中计算项目-项目相似性度量,为什么?
Pearson Correlation
Spearman Correlation
Euclidean Distance
Tanimoto Coefficient
LogLikelihood Similarity
是否有任何拇指规则可以从这些算法中选择以及如何区分它们?
以下哪一项最适合(或广泛使用)在 mahout 中计算项目-项目相似性度量,为什么?
Pearson Correlation
Spearman Correlation
Euclidean Distance
Tanimoto Coefficient
LogLikelihood Similarity
是否有任何拇指规则可以从这些算法中选择以及如何区分它们?
对于那些不熟悉的人,item-item 推荐器计算 item 之间的相似性,而不是 user-user(或基于用户的)推荐器,它计算用户之间的相似性。虽然一些算法可以同时用于这两种方法,但这个问题是关于项目算法的(感谢您在问题中的具体说明)。
基于将推荐与先前收集的数据集(训练集)进行比较来评估推荐器的准确性或有效性。例如,我有过去六个月的购物车数据;我将使用前 5 个月作为训练数据,然后运行我的各种算法,并将质量与第 6 个月的实际情况进行比较。
Mahout 提供这么多算法的原因是因为不同的算法在您可能使用的每个数据集中或多或少都有效。因此,理想情况下,您可以按照我描述的许多算法进行一些测试并比较准确性,然后选择获胜者。
有趣的是,您还可以考虑其他因素,例如需要最小化数据集(出于性能原因),并仅使用可用训练数据的特定部分运行测试。在这种情况下,一种算法可能更适用于较小的数据集,但另一种算法可能适用于完整的数据集。然后,您可以权衡性能 VS 准确性 VS 实施挑战(例如在 Hadoop 集群上部署)。
因此,不同的算法适用于不同的项目。但是,有一些一般规则:
我建议从一个简单的算法开始,并确保您拥有高质量的数据。如果您有额外的时间,您可以实现更复杂的算法并创建对您的数据集唯一的比较。
我的大部分信息来自这项研究。你会在那里找到很多关于实现的细节。