我正在使用mahout推荐的基于算法。可用的所有相似类之间有什么区别?如何知道我的应用程序的最佳选择?这些是我的选择:
SIMILARITY_COOCCURRENCE
SIMILARITY_LOGLIKELIHOOD
SIMILARITY_TANIMOTO_COEFFICIENT
SIMILARITY_CITY_BLOCK
SIMILARITY_COSINE
SIMILARITY_PEARSON_CORRELATION
SIMILARITY_EUCLIDEAN_DISTANCE
每个人的意思是什么?
答案 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是类似的,是用于比较样本集的相似性和多样性的统计量。