码迷,mamicode.com
首页 > 编程语言 > 详细

距离算法度量

时间:2015-08-16 10:45:01      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

1. 欧几里得距离 

公式:两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:

   技术分享

   也可以用表示成向量运算的形式:

   技术分享

适用:需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异。

2. 余弦距离

公式:两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦。

   类似的,对于两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度。

   技术分享

   即:

   技术分享

适用于:从方向上区分差异,用户对内容评分来区分兴趣的相似度和差异,修正了用户间可能存在的度量标准不统一的问题(因为余弦距离对绝对数值不敏感)。

3. 杰卡德相似性度量

定义(1) :杰卡德相似系数

两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。

技术分享

杰卡德相似系数是衡量两个集合的相似度一种指标。

定义(2): 杰卡德距离

与杰卡德相似系数相反的概念是杰卡德距离(Jaccarddistance)。杰卡德距离可用如下公式表示:

技术分享

杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

定义(3):杰卡德相似系数与杰卡德距离的应用

可将杰卡德相似系数用在衡量样本的相似度上。

样本A与样本B是两个n维向量,而且所有维度的取值都是0或1。例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。

p:样本A与B都是1的维度的个数

q:样本A是1,样本B是0的维度的个数

r:样本A是0,样本B是1的维度的个数

s:样本A与B都是0的维度的个数

 

那么样本A与B的杰卡德相似系数可以表示为:

这里p+q+r可理解为A与B的并集的元素个数,而p是A与B的交集的元素个数。

而样本A与B的杰卡德距离表示为:

技术分享

4. 调整余弦相似度算法

余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感,因此没法衡量每个维度上数值的差异,会导致这样一种情况:

用户对内容评分,按5分制,X和Y两个用户对两个内容的评分分别为(1,2)和(4,5),使用余弦相似度得到的结果是0.98,两者极为相似。但从评分上看X似乎不喜欢2这个 内容,而Y则比较喜欢,余弦相似度对数值的不敏感导致了结果的误差,需要修正这种不合理性就出现了调整余弦相似度,即所有维度上的数值都减去一个均值,比如X和Y的评分均值都是3,那么调整后为(-2,-1)和(1,2),再用余弦相似度计算,得到-0.8,相似度为负值并且差异不小,但显然更加符合现实。

 

其他各种距离,参见:http://blog.csdn.net/shiwei408/article/details/7602324

距离算法度量

标签:

原文地址:http://www.cnblogs.com/roseJohn/p/4733700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!