前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【算法】相似度计算方法原理及实现

【算法】相似度计算方法原理及实现

作者头像
陆勤_数据人网
发布2018-04-18 17:05:43
2.1K0
发布2018-04-18 17:05:43
举报
文章被收录于专栏:数据科学与人工智能

小编邀请您,先思考:

1 相似度如何计算?

2 相似度有什么应用?

温馨提示:加入圈子或者商务合作,请加微信:luqin360

在数据分析和数据挖掘以及搜索引擎中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。常见的比如数据分析中比如相关分析,数据挖掘中的分类聚类(K-Means等)算法,搜索引擎进行物品推荐时。

相似度就是比较两个事物的相似性。一般通过计算事物的特征之间的距离,如果距离小,那么相似度大;如果距离大,那么相似度小。比如两种水果,将从颜色,大小,维生素含量等特征进行比较相似性。

问题定义:有两个对象X,Y,都包含N维特征,X=(x1,x2,x3,……..,xn),Y=(y1,y2,y3,……..,yn),计算X和Y的相似性。常用的有五种方法,如下。

1、欧几里得距离(Eucledian Distance)

欧氏距离是最常用的距离计算公式,衡量的是多维空间中各个点之间的绝对距离,当数据很稠密并且连续时,这是一种很好的计算方式。

因为计算是基于各维度特征的绝对数值,所以欧氏度量需要保证各维度指标在相同的刻度级别,比如对身高(cm)和体重(kg)两个单位不同的指标使用欧式距离可能使结果失效。

代码:

2、曼哈顿距离(Manhattan Distance)

Manhattan distance = |x1 – x2| + |y1 – y2|,p1 at (x1, y1) and p2 at (x2, y2).

代码:

3、明可夫斯基距离(Minkowski distance)

明氏距离是欧氏距离的推广,是对多个距离度量公式的概括性的表述,看看下图

公式:

从公式我们可以看出,

  • 当p==1,“明可夫斯基距离”变成“曼哈顿距离”
  • 当p==2,“明可夫斯基距离”变成“欧几里得距离”
  • 当p==∞,“明可夫斯基距离”变成“切比雪夫距离”

代码:

4、(余弦相似度)Cosine Similarity

余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。

代码:

5、Jaccard Similarity

Jaccard系数主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此无法衡量差异具 体值的大小,只能获得“是否相同”这个结果,所以Jaccard系数只关心个体间共同具有的特征是否一致这个问题。

对于上面两个对象A和B,我们用Jaccard计算它的相似性,公式如下

首先计算出A和B的交(A ∩ B),以及A和B的并 (A ∪ B):

然后利用公式进行计算:

代码:

六、皮尔森相关系数(Pearson Correlation Coefficient)

又称相关相似性,通过Peason相关系数来度量两个用户的相似性。计算时,首先找到两个用户共同评分过的项目集,然后计算这两个向量的相关系数。

公式:

实现汇总:

参考资料

1、Implementing the five most popular Similarity Measures in Python 2、相似度方法总结

链接:https://blog.csdn.net/yixianfeng41/article/details/61917158

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学与人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、欧几里得距离(Eucledian Distance)
  • 2、曼哈顿距离(Manhattan Distance)
  • 3、明可夫斯基距离(Minkowski distance)
  • 4、(余弦相似度)Cosine Similarity
  • 5、Jaccard Similarity
  • 六、皮尔森相关系数(Pearson Correlation Coefficient)
  • 实现汇总:
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档