算法中各种距离的介绍

https://blog.csdn.net/sinat_30353259/article/details/80885702

一、欧氏距离(Euclidean Distance):

欧氏距离是最容易直观理解的距离度量方法,我们小学、 初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。
这里写图片描述
二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离:

d12=(x1x2)2+(y1Y2)2

三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:
d12=(x1x2)2+(y1Y2)2+(z1z2)2

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量) :
d12=k=1n(x1x2)2

二、曼哈顿距离(Manhattan Distance):

在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。 曼哈顿距离也称为“城市街区距离”(City Block distance)。
这里写图片描述
二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离:

d12=|x1x2|+|y1y2|

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:
d12=k=1n|x1kx2k|

三、 切比雪夫距离 (Chebyshev Distance):

国际象棋中, 国王可以直行、 横行、 斜行, 所以国王走一
步可以移动到相邻8个方格中的任意一个。 国王从格子
(x1,y1)走到格子(x2,y2)最少需要多少步? 这个距离就叫切比
雪夫距离。

这里写图片描述
二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离:

d12=max(|x1x2|,|y1y2|)

n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的切比雪夫距离:
d12=max(|x1ix2i|)

四、 闵可夫斯基距离(Minkowski Distance):

闵氏距离不是一种距离, 而是一组距离的定义, 是对多个距离度量公式的概括性的表述。
两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:

d12=pk=1n|x1kx2k|p

其中p是一个变参数:
当p=1时, 就是曼哈顿距离;
当p=2时, 就是欧氏距离;
当p→∞时, 就是切比雪夫距离。
根据p的不同, 闵氏距离可以表示某一类/种的距离。
这里写图片描述

五、 马氏距离(Mahalanobis Distance):

下图有两个正态分布的总体,它们的均值分别为a和b,但方差不一样,则图中的A点离哪个总体更近? 或者说A有更大的概率属于谁? 显然, A离左边的更近, A属于左边总体的概率更大, 尽管A与a的欧式距离远一些。 这就是马氏距离的直观解释。
这里写图片描述
马氏距离是基于样本分布的一种距离。
物理意义就是在规范化的主成分空间中的欧氏距离。所谓规范化的主成分空间就是利用主成分分析对一些数据进行主成分分解。 再对所有主成分分解轴做归一化, 形成新的坐标轴。 由这些坐标轴张成的空间就是规范化的主成分空间。

定义: 有M个样本向量X1~Xm, 协方差矩阵记为S, 均值记为向量μ, 则其中
样本向量X到μ的马氏距离表示为:

D(x)=(Xu)TS1(Xu)

向量Xi与Xj之间的马氏距离定义为:
D(Xi,Xj)=(XiXj)TS1(XiXj)

若协方差矩阵是单位矩阵(各个样本向量之间独立同分布) , 则Xi与Xj之间的马氏距离等
于他们的欧氏距离(若协方差矩阵是对角矩阵, 则就是标准化欧氏距离。 ) :
D(Xi,Xj)=(XiXj)T(XiXj)

这里写图片描述
量纲无关, 排除变量之间的相关性的干扰;马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本, 放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的, 除非这两个总体的协方差矩阵碰巧相同;
计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在, 这种情况下, 用欧式距离计算即可。

六、 标准化欧氏距离 (Standardized Euclidean Distance):

标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。
思路: 既然数据各维分量的分布不一样, 那先将各个分量都“标准化”到均值、方差相等。 假设样本集X的均值(mean)为m, 标准差(standard deviation)为s, X
的“标准化变量”表示为:

X=XmS

标准化欧氏距离公式:
d12=sumk=1n(x1kx2kSk)2

七、 汉明距离(Hamming Distance):

两个等长字符串s1与s2的汉明距离为: 将其中一个变为另外一个所需要作的最小字符替换次数。
这里写图片描述
汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是1的个数,所以11101的汉明重量是4。因此,如果向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。
应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。

八、杰卡德距离(Jaccard Distance):

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

J(A,B)=ABAB

杰卡德距离(Jaccard Distance): 与杰卡德相似系数相反, 用两个集合中不同元素
占所有元素的比例来衡量两个集合的区分度:
J(A,B)=|AB||AB||AB|

</article>
posted @ 2022-01-23 09:40  Jijidawang  阅读(26)  评论(0编辑  收藏  举报
😅​