距离度量:闵氏、欧式、马氏、余弦、汉明等
目录
3. 标准化欧式距离(Standardized Euclidean distance)
8. 相关距离 (Correlation distance)
1. 闵氏距离(Minkowski Distance)
闵氏距离又叫做闵可夫斯基距离,是欧氏空间中的一种测度,被看做是欧氏距离的一种推广,欧氏距离是闵可夫斯基距离的一种特殊情况。定义式:
闵可夫斯基距离公式中:
当,即为欧氏距离:勾股定理计算的点之间的直接距离
当时,即为曼哈顿距离:点在标准坐标系上的绝对轴距之和
顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。
当时,即为切比雪夫距离:各坐标轴数据差的最大值
图中绿色代表欧氏距离,红线代表曼哈顿距离,其他三条折线也表示了曼哈顿距离,这三条折线的长度是相等的。
2. 欧式距离(Euclidean Distance)
欧式距离源自N维欧氏空间中两点间的距离公式:
欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在N维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。
3. 标准化欧式距离(Standardized Euclidean distance)
解决问题:数据的各个维度之间尺度不一致。
概念: 标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等,使得各个维度的数据分别满足标准正态分布。假设样本集X的均值(mean)为m,标准差(standard deviation)为s,X的“标准化变量”表示为:
- 标准化欧氏距离公式:
如果将方差的倒数看成一个权重,也可称之为加权欧氏距离(Weighted Euclidean distance)。
【对于尺度无关的解释】如果向量中第一维元素的数量级是100,第二维的数量级是10,比如v1=(100,10),v2 = (500,40),则计算欧式距离:
可见欧式距离会给与第一维度100权重,这会压制第二维度的影响力。
4. 马氏距离(Mahalanobis Distance)
4.1 基本概念
马氏距离是点P和分布D之间距离的量度,由P. C. Mahalanobis于1936年引入
马氏距离的结果也是将数据投影到N(0,1)区间并求其欧式距离,与标准化欧氏距离不同的是它认为各个维度之间不是独立同分布的,所以马氏距离考虑到各种特性之间的联系。可以应对高维线性分布的数据中各维度间非独立同分布的问题。
上图有两个正态分布的总体,它们的均值分别为a和b,但方差不一样,则图中的A点离哪个总体更近?或者说A有更大的概率属于谁?显然,A离左边的更近,A属于左边总体的概率更大,尽管A与a的欧式距离远一些。这就是马氏距离的直观解释。
概念:马氏距离是基于样本分布的一种距离,又称为数据的协方差距离,可以看作是欧氏距离的一种修正,修正了欧式距离中各个维度尺度不一致且相关的问题。物理意义就是在规范化的主成分空间中的欧氏距离。所谓规范化的主成分空间就是利用主成分分析对一些数据进行主成分分解。再对所有主成分分解轴做归一化,形成新的坐标轴。由这些坐标轴张成的空间就是规范化的主成分空间。
针对欧式距离的两个缺点,马氏距离解决方案:
- 各个维度之间不是独立同分布:将变量按照主成分进行旋转,让维度间相互独立;
- 各个维度尺度不一致:进行标准化(因此,马氏距离是无单位的)。
单个数据点的马氏距离
4.2 马氏距离的特点
- 考虑进数据之间的联系
- 量纲无关(尺度无关),排除变量之间的相关性的干扰;
- 马氏距离的计算,是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;
- 计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。
马氏距离可以通过协方差自动生成相应的权重,而使用逆则抵消掉这些权重。
最典型的就是根据距离作判别问题,即假设有n个总体,计算某个样品X归属于哪一类的问题。此时虽然样品X离某个总体的欧氏距离最近,但是未必归属它,比如该总体的方差很小,说明需要非常近才能归为该类。对于这种情况,马氏距离比欧氏距离更适合作判别。
4.3 与欧式距离的关系
对角线上元素全为1的对角矩阵称为单位矩阵。
- 欧式距离&马氏距离:
4.4 马氏距离的问题
- 协方差矩阵必须满秩:里面有求逆矩阵的过程,不满秩不行,要求数据要有原维度个特征值,如果没有可以考虑先进行PCA,这种情况下PCA不会损失信息
- 不能处理非线性流形(manifold)上的问题:只对线性空间有效,如果要处理流形,只能在局部定义,可以用来建立KNN图
5. 余弦距离(Cosine Distance)
几何中,夹角余弦可用来衡量两个向量方向的差异;机器学习中,借用这一概念来衡量样本向量之间的差异。
- 二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:
- 两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦为:
即:
夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。
6. 汉明距离(Hamming Distance)
-
定义:两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。例如:
-
汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。因此,向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。
-
应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。
7. 杰卡德距离 (Jaccard Distance)
-
杰卡德相似系数(Jaccard similarity coefficient):两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示:
- 杰卡德距离:与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:
8. 相关距离 (Correlation distance)
- 相关系数:是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关):
- 相关距离:
9. 信息熵 (Information Entropy)
以上的距离度量方法度量的皆为两个样本(向量)之间的距离,而信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。
-
计算给定的样本集X的信息熵的公式:
参数的含义:
- n:样本集X的分类数
- pi:X中第 i 类元素出现的概率
信息熵越大表明样本集S的分布越分散(分布均衡),信息熵越小则表明样本集X的分布越集中(分布不均衡)。
当S中n个分类出现的概率一样大时(都是1/n),信息熵取最大值log2(n)。当X只有一个分类时,信息熵取最小值0。
参考:
https://www.cnblogs.com/AlvinSui/p/8931074.html
https://blog.****.net/Kevin_cc98/article/details/73742037
sklearn.neighbors.DistanceMetric