Mahout推荐的相似策略之间的区别

时间:2014-04-28 04:29:30

标签: machine-learning mahout similarity recommendation-engine mahout-recommender

我正在使用mahout推荐的基于算法。可用的所有相似类之间有什么区别?如何知道我的应用程序的最佳选择?这些是我的选择:

SIMILARITY_COOCCURRENCE
SIMILARITY_LOGLIKELIHOOD
SIMILARITY_TANIMOTO_COEFFICIENT
SIMILARITY_CITY_BLOCK
SIMILARITY_COSINE
SIMILARITY_PEARSON_CORRELATION       
SIMILARITY_EUCLIDEAN_DISTANCE

每个人的意思是什么?

2 个答案:

答案 0 :(得分:3)

我不熟悉所有这些,但我可以帮助一些。

同时发生是同一个用户发生两个项目的频率。 http://en.wikipedia.org/wiki/Co-occurrence

Log-Likelihood是根据您推荐的特征推荐该项目的概率的对数。 http://en.wikipedia.org/wiki/Log-likelihood

不确定tanimoto

城市街区是指两个实例之间的距离,如果您认为您只能在办公室风格的城市中移动。 http://en.wikipedia.org/wiki/Taxicab_geometry

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

Pearson Correlation是通过标准偏差归一化的特征的协方差。 http://en.wikipedia.org/wiki/Pearson_correlation_coefficient

欧几里德距离是两点之间的标准直线距离。 http://en.wikipedia.org/wiki/Euclidean_distance

要确定哪种应用最适合您,您最有可能需要对数据及其含义有一些直觉。如果你的数据是连续的值特征,那么比欧几里德距离或皮尔森相关性更有意义。如果你有更多的离散值而不是沿着城市街区的某些东西,那么余弦相似性可能更有意义。

另一个选项是设置一个交叉验证实验,您可以在其中查看每个相似性指标在预测所需输出值方面的效果,并从交叉验证结果中选择效果最佳的指标。

答案 1 :(得分:0)

Tanimoto和Jaccard是类似的,是用于比较样本集的相似性和多样性的统计量。

https://en.wikipedia.org/wiki/Jaccard_index