Mahout推荐系统中基于物品的推荐算法相似性策略的区别

我在使用Mahout的基于物品的推荐算法。所有可用的–similarity类之间有什么区别?我如何知道哪一个最适合我的应用?这些是我的选择:

SIMILARITY_COOCCURRENCESIMILARITY_LOGLIKELIHOODSIMILARITY_TANIMOTO_COEFFICIENTSIMILARITY_CITY_BLOCKSIMILARITY_COSINESIMILARITY_PEARSON_CORRELATION       SIMILARITY_EUCLIDEAN_DISTANCE

这些分别代表什么意思?


回答:

我对这些并不都熟悉,但我可以帮助解释一些。

共现(Cooccurrence)是指两个物品在同一个用户中出现的频率。 http://en.wikipedia.org/wiki/Co-occurrence

对数似然(Log-Likelihood)是指根据你推荐的特征,物品被推荐的概率的对数。 http://en.wikipedia.org/wiki/Log-likelihood

关于Tanimoto系数我不确定

城市街区距离(City block)是指如果假设你只能像在棋盘式城市中移动那样计算两个实例之间的距离。 http://en.wikipedia.org/wiki/Taxicab_geometry

余弦相似度(Cosine similarity)是指两个特征向量之间的角度的余弦值。 http://en.wikipedia.org/wiki/Cosine_similarity

皮尔逊相关系数(Pearson Correlation)是特征的协方差除以它们的标准偏差。 http://en.wikipedia.org/wiki/Pearson_correlation_coefficient

欧几里得距离(Euclidean distance)是指两点之间的标准直线距离。 http://en.wikipedia.org/wiki/Euclidean_distance

要确定哪种方法最适合你的应用,你可能需要对你的数据及其含义有一定的直觉。如果你的数据是连续值特征,那么使用欧几里得距离或皮尔逊相关系数是有意义的。如果你的数据更多是离散值,那么使用城市街区距离或余弦相似度可能更合适。

另一种选择是设置一个交叉验证实验,看看每种相似性度量在预测所需输出值方面的表现如何,并从交叉验证结果中选择表现最佳的度量方法。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注