在分类聚类算法,推荐系统中,常要用到两个输入变量(通常是特征向量的形式)距离的计算,即相似性度量.不同相似性度量对于算法的结果,有些时候,差异很大.因此,有必要根据输入数据的特征,选择一种合适的相似性度量方法.
令X=(x1,x2,..,xn)T,Y=(y1,y2,...yn)T为两个输入向量,
1.欧几里得距离(Euclidean distance)
相当于高维空间内向量说表示的点到点之间的距离。
由于特征向量的各分量的量纲不一致,通常需要先对各分量进行标准化,使其与单位无关。
优点:简单,应用广泛(如果也算一个优点的话)
缺点:没有考虑分量之间的相关性,体现单一特征的多个分量会干扰结果。
2.马氏距离(Mahalanobis distance)
C=E[(X-X平均)(Y-Y平均)]为该类输入向量X的协方差矩阵.(T为转置符号,E取平均时是样本因此为n-1)
适用场合:
1)度量两个服从同一分布并且其协方差矩阵为C的随机变量X与Y的差异程度
2)度量X与某一类的均值向量的差异程度,判别样本的归属。此时,Y为类均值向量.
优点:
1)独立于分量量纲
2)排除了样本之间的相关性影响。
缺点:不同的特征不能差别对待,可能夸大弱特征。
3.闵可夫斯基距离(Minkowsk distance)
可看成是欧氏距离的指数推广,还没有见到过很好的应用实例,但通常,推广都是一种进步:)
特别的,当p=1,也成做街坊距离或曼哈顿距离,也称绝对距离。
4.汉明距离(Hamming distance)
还记得汉明码吗,海明距离就是表示X,Y取值不同的分量数目,只适用分量只取-1或1的情况。
5.Tanimoto系数(又称广义Jaccard系数)
通常应用于X为布尔向量,即各分量只取0或1的时候。此时,表示的是X,Y的公共特征的占X,Y所占有的特征的比例。
6.皮尔逊相关系数(Pearson correlation coefficient)
其实就是高中学过的相关系数啦,等于X,Y的协方差除以X,Y的标准差之积。不多说了。
这东西在多元统计课本上出现时竟然就称为相关系数,什么名称都没有。
7.余弦相似度(cosine similarity)
就是两个向量之间的夹角的余弦值。
应用场合:通常应用于X为布尔向量,即各分量只取0或1的时候。此时,和Tanimoto类似,是X,Y公共特征数目的测量。
优点:不受坐标轴旋转,放大缩小的影响。
还有一个调整余弦相似度(Adjusted Cosine Similarity),和余弦相似度的计算不同的是,X,Y在减去用户平均评分向量后再代入余弦相似度公式中计算。调整余弦相似度和余弦相似度,皮尔逊相关系数在推荐系统中应用较多。在基于项目的推荐中,GroupLens有篇论文结果表明调整余弦相似度性能要优于后两者。
http://blog.csdn.net/u012160689/article/details/15341303 余弦度量
http://blog.csdn.net/linvo/article/details/9333019 欧式度量
参考资料:
http://en.wikipedia.org/wiki/Metric_space#Examples_of_metric_spaces
《模式识别导论》--齐敏等