在分类聚类算法,推荐系统中,常要用到两个输入变量(一般是特征向量的形式)距离的计算,即类似性度量.不一样类似性度量对于算法的结果,有些时候,差别很大.所以,有必要根据输入数据的特征,选择一种合适的类似性度量方法.php
令X=(x1,x2,..,xn)T,Y=(y1,y2,...yn)T为两个输入向量,算法
1.欧几里得距离(Euclidean distance)-EuclideanDistanceMeasure.ide
至关于高维空间内向量说表示的点到点之间的距离。
因为特征向量的各份量的量纲不一致,一般须要先对各份量进行标准化,使其与单位无关,好比对身高(cm)和体重(kg)两个单位不一样的指标使用欧式距离可能使结果失效。
优势:简单,应用普遍(若是也算一个优势的话)
缺点:没有考虑份量之间的相关性,体现单一特征的多个份量会干扰结果。性能
2.马氏距离(Mahalanobis distance)-MahalanobisDistanceMeasureidea
C=E[(X-X平均)(Y-Y平均)]为该类输入向量X的协方差矩阵.(T为转置符号,E取平均时是样本所以为n-1)3d
适用场合:
1)度量两个服从同一分布而且其协方差矩阵为C的随机变量X与Y的差别程度
2)度量X与某一类的均值向量的差别程度,判别样本的归属。此时,Y为类均值向量.
优势:
1)独立于份量量纲
2)排除了样本之间的相关性影响。
缺点:不一样的特征不能差异对待,可能夸大弱特征。blog
3.闵可夫斯基距离(Minkowsk distance)-MinkowskiDistanceMeasure(默认p=3)ci
可当作是欧氏距离的指数推广,尚未见到过很好的应用实例,但一般,推广都是一种进步,特别的,字符串
当p=1,也成作曼哈顿距离,也称绝对距离,曼哈顿距离来源于城市区块距离,是将多个维度上的距离进行求和后的结果。ManhattanDistanceMeasure.get
当q=∞时,称为切比雪夫距离,ChebyshevDistanceMeasure
切比雪夫距离起源于国际象棋中国王的走法,咱们知道国际象棋国王每次只能往周围的8格中走一步,那么若是要从棋盘中A格(x1, y1)走到B格(x2, y2)最少须要走几步?扩展到多维空间,其实切比雪夫距离就是当p趋向于无穷大时的明氏距离:
4.汉明距离(Hamming distance)-Mahout无
在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不一样字符的个数。换句话说,它就是将一个字符串变换成另一个字符串所须要替换的字符个数。
例如:
1011101 与 1001001 之间的汉明距离是 2。
2143896 与 2233796 之间的汉明距离是 3。
"toned" 与 "roses" 之间的汉明距离是 3。
5.Tanimoto系数(又称广义Jaccard系数)-TanimotoDistanceMeasure.
一般应用于X为布尔向量,即各份量只取0或1的时候。此时,表示的是X,Y的公共特征的占X,Y所占有的特征的比例。
5.Jaccard系数
Jaccard系数主要用于计算符号度量或布尔值度量的个体间的类似度,由于个体的特征属性都是由符号度量或者布尔值标识,所以没法衡量差别具体值的大小,只能得到“是否相同”这个结果,因此Jaccard系数只关心个体间共同具备的特征是否一致这个问题。若是比较X与Y的Jaccard类似系数,只比较xn和yn中相同的个数,公式以下:
7.皮尔逊相关系数(Pearson correlation coefficient)-PearsonCorrelationSimilarity
即相关分析中的相关系数r,分别对X和Y基于自身整体标准化后计算空间向量的余弦夹角。公式以下:
8.余弦类似度(cosine similarity)-CosineDistanceMeasure
就是两个向量之间的夹角的余弦值。
余弦类似度用向量空间中两个向量夹角的余弦值做为衡量两个个体间差别的大小。相比距离度量,余弦类似度更加注重两个向量在方向上的差别,而非距离或长度上。
优势:不受坐标轴旋转,放大缩小的影响。
9.调整余弦类似度-Adjusted Cosine Similarity
虽然余弦类似度对个体间存在的偏见能够进行必定的修正,可是由于只能分辨个体在维之间的差别,无法衡量每一个维数值的差别,会致使这样一个状况:好比用户对内容评分,5分制,X和Y两个用户对两个内容的评分分别为(1,2)和(4,5),使用余弦类似度得出的结果是0.98,二者极为类似,但从评分上看X彷佛不喜欢这2个内容,而Y比较喜欢,余弦类似度对数值的不敏感致使告终果的偏差,须要修正这种不合理性,就出现了调整余弦类似度,即全部维度上的数值都减去一个均值,好比X和Y的评分均值都是3,那么调整后为(-2,-1)和(1,2),再用余弦类似度计算,获得-0.8,类似度为负值而且差别不小,但显然更加符合现实。
调整余弦类似度和余弦类似度,皮尔逊相关系数在推荐系统中应用较多。在基于项目的推荐中,GroupLens有篇论文结果代表调整余弦类似度性能要优于后二者。
10.基于权重的距离计算方法:
WeightedDistanceMeasure、WeightedEuclideanDistanceMeasure 、 WeightedManhattanDistanceMeasure
欧氏距离与余弦类似度
借助三维坐标系来看下欧氏距离和余弦类似度的区别:
根据欧氏距离和余弦类似度各自的计算方式和衡量特征,分别适用于不一样的数据分析模型:欧氏距离可以体现个体数值特征的绝对差别,因此更多的用于须要从维度的数值大小中体现差别的分析,如使用用户行为指标分析用户价值的类似度或差别;而余弦类似度更多的是从方向上区分差别,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分用户兴趣的类似度和差别,同时修正了用户间可能存在的度量标准不统一的问题(由于余弦类似度对绝对数值不敏感)。