您的位置:首页 > 其它

Mahout推荐引擎中的几种相似度计算简要介绍

2016-03-17 10:59 465 查看
Mahout的Taste框架里提供的几种比较常用的相似度计算。

1.欧几里德距离(Euclidean Distance),记为d(x,y)

首先要计算两个点之间的欧几里德距离,然后根据欧几里德距离计算相似度。

对应的欧几里德相似度,一般采用如下方式转换:sim(x,y) = 1/(1+d(x,y))。距离越小,相似度越大。  

2.余弦相似性(Cosine Similarity)

余弦相似性计算时,余弦值代表用户之间的相似性,当夹角越小时,余弦值越大,用户越相似,余弦相似性被广泛应用于计算文档数据的相似度。

3.皮尔逊相关系数(Pearson Correlation Coefficient)

皮尔逊相关系数一般用户计算两个定距变量间线性相关的紧密程度,它的取值在【-1,+1】之间。当取值大于0时表示两个变量是正相关的,即一个变量的值越大,

另一个变量的值也会越大;当取值小于0时表示两个变量是负相关的,即一个变量的值越大,另一个变量的值反而会越小。

4.Tanimoto系数(Tanimoto Coefficient)

Tanimoto系数也称Jaccard系数,是Cosine相似度的扩展,一般用于计算文本数据的相似度。

5.CityBlock(曼哈顿)相似度

曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇,是使用在几何度量空间的几何学用语,用以表明两个点以上在标准坐标系上的绝对轴距总和。

转换后的相似度为:sim(x,y) = 1/(1+d(x,y))。

上述各种相似性计算方法都各自的优缺点,也应用于不同的场景之下。

这里只简单介绍下概念,数学公式没有往上贴。

除了以上介绍的几种,PEARSON, EUCLIDEAN, COSINE, TANIMOTO, SPEARMAN, CITYBLOCK, Mahout的Taste框架中还给出了LOGLIKELIHOOD, 可用来计算用户也可用来计算item。下面是对用户进行聚类使用的,FARTHEST_NEIGHBOR_CLUSTER, NEAREST_NEIGHBOR_CLUSTER
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息