关于机器学习中相似性度量的一些方法

相似性度量

相似性度量指的是在分类或者聚类算法中两个变量(向量)的相似程度,常用的方法是计算两个变量(向量)之间的距离,选择什么样的方法计算距离,计算什么样的距离常常会直接影响分类的效果。


本文详细地说明了以下几种常见的相似度量方法的原理。

  • 欧式距离
  • 曼哈顿距离
  • 切比雪夫距离
  • 闵科夫斯基距离
  • 标准化欧式距离
  • 马氏距离
  • 夹角余弦
  • 汉明距离
  • 杰卡德距离/杰卡德相似度
  • 皮尔逊相关系数
  • 相关系数/相关距离
  • KL散度
  • JS散度
  • 交叉熵

1.欧氏距离(Euclidean Distance)

欧式距离是最容易理解的距离计算方法。将欧式空间中两点间距离扩展到N维空间,即欧式距离指的是N为空间中两点之间的距离。

N维空间中两点用两个向量表示:

a = (X11,X12,…X1N)和b = (X21,X22,…X2N)

A与B的欧式距离表示为:
在这里插入图片描述
向量形式表示为:

在这里插入图片描述


2.曼哈顿距离(Manhattan Distance)

曼哈顿距离(Manhattan Distance)也被叫做城市街区距离(City Block distance),想象你要从城市的一个十字路口到另一个十字路口,行走的距离显然不可能是两点之间的距离。你实际行走的距离就是曼哈顿距离。

向量a = (X11,X12,…X1N)和b = (X21,X22,…X2N)之间的曼哈顿距离为:
在这里插入图片描述


3.切比雪夫距离

在国际象棋中,国王一步可以移动到8个相邻各自中的任意一个。那么国王从(x1,y1)到(x2,y2)需要走多少步呢。这就是二维平面内的切比雪夫距离:

在这里插入图片描述
向量a = (X11,X12,…X1N)和b = (X21,X22,…X2N)之间的切比雪夫距离为:
在这里插入图片描述
另一种等价形式为
在这里插入图片描述


3.闵可夫斯基距离(Minkowski Distance)

闵科夫斯基距离不是一种距离,二是一组距离的定义。

向量a = (X11,X12,…X1N)和b = (X21,X22,…X2N)之间的闵氏距离定义为

在这里插入图片描述
其中p是一个可变参数,他与上述三种距离的关系为:

p距离
1曼哈顿距离
2欧式距离
切比雪夫距离

闵氏距离包括上述三种距离存在一些缺点:

拿一个例子来说:二维样本(身高、体重),其中身高范围是150~190,体重范围是50~60,有三个样本a(180,50),b(190,50),c(180,60).那么a与b之间的闵氏距离等于a与c之间的闵氏距离,但是身高的10cm真的等价于体重的10kg么?因此用闵氏距离来衡量这些样本的相似度就有问题了。
简单来说,闵氏距离的缺点有两个:

  1. 将各个分量的量纲当作相同的量纲来看呆了
  2. 没有考虑各个分量的分布(期望、方差等)可能是不同的。

5.标准化欧式距离(Standardized Euclidean distance )

标准化欧式距离是针对简单欧式距离的缺点而作为的一种改进方案。
标准化欧式距离的思路:将各个分量“标准化”到均值、方差相等。

标准化后的值 =  ( 标准化前的值  - 分量的均值 ) /分量的标准差


在这里插入图片描述
经过简单的推到,可以得到两个N维向量a = (X11,X12,…X1N)和b = (X21,X22,…X2N)之间的标准化欧式距离为:
在这里插入图片描述
另外,如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)


6.马氏距离(Mahalanobis Distance)

1.马氏距离的定义
    有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:
在这里插入图片描述
其中向量Xi与Xj之间的马氏距离定义为:
在这里插入图片描述
如果协方差矩阵为单位矩阵(各个样本向量之间独立同分布),那么公式就变成了:
在这里插入图片描述
这也是欧式距离的计算公式。

如果协方差矩阵是对角矩阵,公式变成了标准化欧式距离。

2.马氏距离的优缺点:量纲无关、排除变量之间的相关性的干扰


7.夹角余弦

这是walk2friends论文中运用到的相似度量方式

在几何中,夹角余弦可以用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。

1.二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式为:
在这里插入图片描述
2.两个N维向量(样本点)a = (X11,X12,…X1N)和b = (X21,X22,…X2N)之间的夹角余弦为
在这里插入图片描述
也就是在这里插入图片描述
3.夹角余弦的一些性质:
    夹角余弦的取值范围是[-1,1],夹角余弦越大表示两个向量之间的夹角越小,反之两个向量之间的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,方向相反时夹角余弦取最小值1。


8.汉明距离

汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

汉明距离用于信息编码和解码中,为了增强容错性,编码间的汉明距离应尽可能大。


9.杰卡德相似系数(Jaccard similarity coefficient)

杰卡德相似系数被定义为两个集合A和B交集中的元素占A和B并集元素的比例,表示为J(A,B)
在这里插入图片描述
杰卡德距离定义为1 - J(A,B),用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

杰卡德相似系数与杰卡德距离可以衡量样本的相似度。

  • 样本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的维度的个数

    这样样本AB的杰卡德相似系数可以表示为:J = p/(p+q+r)


10.相关系数 ( Correlation coefficient )与相关距离(Correlation distance)

1.相关系数
在这里插入图片描述
相关系数的取值范围为[-1,1]。相关系数的绝对值越大表明X与Y相关程度越高,且整数表示正相关,负数表示负相关

2.相关距离
样本XY的相关距离定义为

Dxy = 1 - 相关系数

11.KL散度(Kullback–Leibler divergence)

KL散度又称KL距离,相对熵
在这里插入图片描述

当P(x)和Q(x)的相似度越高时,KL散度越小。

KL散度有两个性质:

  • 不对称性:尽管KL散度从直观上是个度量或距离函数,但他并不是一个真正的度量或距离,也就是说D(P||Q)!=D(Q||P)
  • 非负性

12.JS散度(Jensen-Shannon divergence)

JS散度也叫JS距离,是KL散度的一种变形。

在这里插入图片描述
不同于KL散度的是:

  • 值域为[0,1],PQ相同为0,PQ相反为1。相对于KL散度,对相似度的判别更加确切
  • 对称性,即JS(P||Q)=JS(Q||P)

13.交叉熵(Cross Entropy)

在神经网络中,交叉熵可以作为损失函数,因为它可以衡量P和Q的相似性

在这里插入图片描述
交叉熵和相对熵存在以下关系:
在这里插入图片描述


小结:

  • 欧式距离、曼哈顿距离、切比雪夫距离都是闵科夫斯基距离的不同形式,标准化欧式距离实际上是对向量中每个维度进行加权后的欧式距离,是一种特殊的(协方差矩阵为对角矩阵)的马氏距离(协方差矩阵为1时为欧式距离)。

  • 汉明距离度量的是二进制向量之间不同字符的数量,主要应用于编码。

  • 夹角余弦通过度量两向量的方向来确定它们之间的相似程度,而不会考虑其长度。

  • 杰卡德距离用于度量两个集合之间的相似程度。

  • KL散度、JS散度和交叉熵都用来衡量两个概率分布之间的相似性。


[1].https://blog.csdn.net/txwh0820/article/details/51791739
[2].https://blog.csdn.net/frankiehello/article/details/80614422

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值