余弦相似度 与 欧式距离 选择

来源:互联网 发布:python 免费空间 编辑:程序博客网 时间:2024/04/27 14:17

转载自:http://www.cnblogs.com/chaosimple/archive/2013/06/28/3160839.html


余弦相似度公式:


欧式距离公式:


二维空间的公式

(2)三维空间两点a(x1,y1,z1)b(x2,y2,z2)间的欧氏距离:

 基于距离的计算方法

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

 基于距离的计算方法

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

基于距离的计算方法



余弦距离和欧氏距离的对比

从上图可以看出,余弦距离使用两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比欧氏距离,余弦距离更加注重两个向量在方向上的差异。

借助三维坐标系来看下欧氏距离和余弦距离的区别:

clip_image009

从上图可以看出,欧氏距离衡量的是空间各点的绝对距离,跟各个点所在的位置坐标直接相关;而余弦距离衡量的是空间向量的夹角,更加体现在方向上的差异,而不是位置。如果保持A点位置不变,B点朝原方向远离坐标轴原点,那么这个时候余弦距离clip_image011 是保持不变的(因为夹角没有发生变化),而A、B两点的距离显然在发生改变,这就是欧氏距离和余弦距离之间的不同之处。

欧氏距离和余弦距离各自有不同的计算方式和衡量特征,因此它们适用于不同的数据分析模型:

欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异。

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


原创粉丝点击