首页 > 其他 > 详细

相似度计算

时间:2019-09-28 10:37:48      阅读:81      评论:0      收藏:0      [点我收藏+]

很多时候,相似度可以理解为两样物体的距离,相似度计算在数据挖掘和推荐系统中有着广泛的应用场景。例如:

  • CF协同过滤算法中,可以利用相似度计算用户之间(User-Based)或者物品之间(Item-Based)的相似度;
  • 在利用k-means进行聚类时,判断个体所属类别,可以使用相似度计算公式计算个体到簇类中心的距离;
  • 利用KNN进行分类时,也可以利用相似度计算个体与已知类别之间的相似性,判断个体所属的类别;

1、欧式距离

        欧式距离,也叫欧几里得距离,指在m维空间中两点的真实距离。

        在二维空间中,计算点技术分享图片与点技术分享图片之间的欧式距离,

其公式为:技术分享图片

2、曼哈顿距离

        曼哈顿距离又叫城市街区距离。所谓的城市街区距离,就是将城市比喻为二维矩阵,从一个十字路口开到另外一个十字路口,驾驶距离显然不是欧式距离,而是“曼哈顿”距离。

        在二维空间中,计算点技术分享图片与点技术分享图片之间的曼哈顿距离,

其公式为:技术分享图片

3、切比雪夫距离

        切比雪夫距离(Chebyshev Distance)的定义:技术分享图片

        在二维空间中,计算点技术分享图片与点技术分享图片之间的切比雪夫距离,

其公式为:技术分享图片

4、马氏距离

        马氏距离指的是协方差距离。有m个样本向量技术分享图片,协方差矩阵为技术分享图片。其中,向量技术分享图片技术分享图片之间的马氏距离为:

技术分享图片

式中,技术分享图片为样本向量,技术分享图片为协方差矩阵。

5、夹角余弦距离

        几何中的夹角余弦用来衡量两个向量方向的差异。

        在二维空间中,向量技术分享图片与向量技术分享图片的夹角余弦公式如下:

技术分享图片

6、杰卡德相似系数与杰卡德距离

        两个集合技术分享图片技术分享图片的交集元素在技术分享图片技术分享图片的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号技术分享图片表示,对应的公式:技术分享图片

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

有时候,分母会变成两个集合的平均长度。

如Python代码:

def JaccardSimilarityCoefficient(a,b):
    set_a = set(a)
    set_b = set(b)
    # 原式
    dis = float(len(set_a & set_b)) / len(set_a | set_b)
    # 变式
    dis = 2 * float(len(set_a & set_b)) / (len(set_a)+len(set_b))
    return dis

        与杰卡德系数相反的概念,就是杰卡德距离,即两个集合中不同元素占所有元素的比例,用来衡量两个集合的区分度。

公式:技术分享图片

7、相关系数与相关距离

        相关系数是衡量随机变量和相关程度的一种方法,相关系数的取值范围是[-1, 1]。相关系数的绝对值越大,表明与的相关度越高。

        当和线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。

随机变量与的相关系数:技术分享图片

则随机变量与的相关距离为:技术分享图片

相似度计算

原文:https://www.cnblogs.com/SysoCjs/p/11601330.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!