信号或者多维空间里,常常需要用一些距离或者相关度量来衡量两个点或向量的距离和相似度。下面列举一些常用于不同的模型和空间的距离。
1. 欧氏距离(euclidean distance)
最通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离(直线距离)。
在m维空间中,欧式距离的计算如下:
2. 马氏距离(Mahalanobis distance)
马氏距离表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。
有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到μ的马氏距离表示为:
而其中向量Xi与Xj之间的马氏距离定义为:
若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:
也就是欧氏距离了。
3. Bhattacharyya距离
在统计学中,Bhattacharyya距离(以下称巴氏距离)测量的是两个离散或连续概率分布的相似性。计算方式和Bhattacharyya系数关系很密切。两种计算方式都以A. Bhattacharyya名字命名,Bhattacharyya是一位30年代在印度统计研究所工作的统计学家。巴氏系数可用来对两组样本的相关性进行测量。这一方法常用来作分类器算法
-离散概率分布
对于在X数域上的两个离散概率分布p和q,巴氏距离定义为:
被称作Bhattacharyya系数(巴氏系数,Bhattacharyya Coefficien)
且
对于连续概率分布
在连续函数中,Bhattacharyya系数如下定义:
且
两种情形中,巴氏距离DB均不满足三角不等式
例如在正态分布下,p(x)和q(x)的巴氏距离为;
其中,σ和μ分别表示相应的均值和方差。
Bhattacharyya系数
巴氏系数是对两个统计样本的重叠量的近似计算。巴氏系数可用来对两组样本的相关性进行测量。
计算巴氏系数涉及到对该两个样本的重叠部分进行基本形式的积分。两个样本值的积分被分成指定数目的部分。而每一个样本的每一个部分的成员数被用于下式中:
4.Hellinger 距离
在概率论和统计理论中,Hellinger距离被用来度量两个概率分布的相似度。它是f散度的一种(f散度——度量两个概率分布相似度的指标)。 为了从度量理论的角度定义Hellinger距离,我们假设P和Q是两个概率测度,并且它们对于第三个概率测度λ来说是绝对连续的,则P和Q的Hellinger距离的平方被定义如下:
这里的dP
Hellinger距离满足如下性质:
离散概率分布
对于两个离散概率分布 P=(p1,p2,...,pn)和 Q=(q1,q2,...,qn),它们的Hellinger距离可以定义如下:
上式可以被看作两个离散概率分布平方根向量的欧式距离,如下所示:
两个正态分布P
两个指数分布P
两个威利分布P
5.明氏距离 (或译成 闵可夫斯基距离 MinkowskiDistance)
当p=1时,就是曼哈顿距离
当p=2时,就是欧氏距离
当p→∞时,就是切比雪夫距离
根据变参数的不同,闵氏距离可以表示一类的距离。
6.汉明距离
- 1011101与1001001之间的汉明距离是2。
- 2143896与2233796之间的汉明距离是3。
- "toned"与"roses"之间的汉明距离是3。
用3个二进制位来表示立方体顶点的编码,那个任意两个顶点(二进制序列)的汉明距离就是边长。如下图所示,从000到111要走3步,汉明距离就是3。
用4个二进制表示的超立方体的编码也类似,只是多了一位,距离计算也是位变化数量。
7. 曼哈顿距离(ManhattanDistance)
从名字就可以猜出这种距离的计算方法了。想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为城市街区距离(CityBlock distance)。
(1)二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离
(2)两个n维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的曼哈顿距离
8.余弦距离(Cosine Distance)
从名字就可以知道计算什么了,就是两个向量的余弦,对于n维空间的两个向量a和b,其余弦距离;
9.切比雪夫距离(Chebyshev distance)
二个点之间的距离定义为其各座标数值差的最大值,以(x1,y1)和(x2,y2)二点为例,其切比雪夫距离为max(|x2-x1|,|y2-y1|)。切比雪夫距离得名自俄罗斯数学家切比雪夫。若将国际象棋棋盘放在二维直角座标系中,格子的边长定义为1,座标的x轴及y轴和棋盘方格平行,原点恰落在某一格的中心点,则王从一个位置走到其他位置需要的步数恰为二个位置的切比雪夫距离,因此切比雪夫距离也称为棋盘距离。例如位置F6和位置E2的切比雪夫距离为4。任何一个不在棋盘边缘的位置,和周围八个位置的切比雪夫距离都是1。
若二个向量或二个点p 、and q,其座标分别为及,则两者之间的切比雪夫距离定义如下:
这也等于以下Lp度量的极值:
因此切比雪夫距离也称为L∞度量。
以数学的观点来看,切比雪夫距离是由一致范数(或称为上确界范数)所衍生的度量,也是超凸度量的一种。
在平面几何中,若二点p及q的直角坐标系坐标为 及,则切比雪夫距离为
依以上的度量,以任一点为准,和此点切比雪夫距离为r的点会形成一个正方形,其边长为2r,且各边都和坐标轴平行。在棋盘上,使用的是离散的切比雪夫距离,以以任一位置为准,和此点切比雪夫距离为r的所有位置也会形成一正方形,若以位置的中心量到其他位置的中心,此正方形的“边长”为2r,正方形的边会有2r+1个方格,例如,和一位置切比雪夫距离为1的所有位置会形成一个3×3的正方形。
10. 杰卡德距离(Jaccard Distance)
杰卡德距离是用来衡量两个集合差异性的一种指标,它是杰卡德相似系数的补集,被定义为1减去Jaccard相似系数。而杰卡德相似系数(Jaccard similarity coefficient),也称杰卡德指数(Jaccard Index),是用来衡量两个集合相似度的一种指标。
11. 信息熵(Information Entropy)
熵用于度量一个热力学系统的无序程度。在信息论里面,熵是对不确定性的测量。但是在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。英语文本数据流的熵比较低,因为英语很容易读懂,也就是说很容易被预测。即便我们不知道下一段英语文字是什么内容,但是我们能很容易地预测,比如,字母e总是比字母z多,或者qu字母组合的可能性总是超过q与任何其它字母的组合。如果未经压缩,一段英文文本的每个字母需要8个比特来编码,但是实际上英文文本的熵大概只有4.7比特。
熵的计算
如果有一枚理想的硬币,其出现正面和反面的机会相等,则抛硬币事件的熵等于其能够达到的最大值。我们无法知道下一个硬币抛掷的结果是什么,因此每一次抛硬币都是不可预测的。因此,使用一枚正常硬币进行若干次抛掷,这个事件的熵是一比特,因为结果不外乎两个——正面或者反面,可以表示为0, 1
编码,而且两个结果彼此之间相互独立。若进行n
次独立实验,则熵为n
,因为可以用长度为n
的比特流表示。但是如果一枚硬币的两面完全相同,那个这个系列抛硬币事件的熵等于零,因为结果能被准确预测。现实世界里,我们收集到的数据的熵介于上面两种情况之间。
另一个稍微复杂的例子是假设一个随机变量X
,取三种可能值,概率分别为,那么编码平均比特长度是:。其熵为3/2。因此熵实际是对随机变量的比特量和顺次发生概率相乘再总和的数学期望。
一个值域为{x1, ..., xn}的随机变量X 的熵值 H 定义为:
- ,
其中,E 代表了期望函数,而 I(X) 是 X 的信息量。I(X) 本身是个随机变量。如果p 代表了 X 的几率质量函数(probability mass function),则熵的公式可以表示为:
在这里 b 是对数所使用的底,通常是 2, 自然常数 e,或是10。当b = 2,熵的单位是bit;当b = e,熵的单位是nat;而当b = 10,熵的单位是dit。
pi = 0时,对于一些i值,对应的被加数0 logb 0的值将会是0,这与极限一致。
交叉熵Cross Entropy
交叉熵是一种万能的Monte-Carlo技术,常用于稀有事件的仿真建模、多峰函数的最优化问题。交叉熵技术已用于解决经典的旅行商问题、背包问题、最短路问题、最大割问题等。
交叉熵算法的推导过程中又牵扯出来一个问题:如何求一个数学期望?常用的方法有这么几种:
- 概率方法,比如Crude Monte-Carlo
- 测度变换法change of measure
- 偏微分方程的变量代换法
- Green函数法
- Fourier变换法
在实际中变量X服从的概率分布h往往是不知道的,我们会用g来近似地代替h----这本质上是一种函数估计。有一种度量g和h相近程度的方法叫 Kullback-Leibler距离,又叫交叉熵:
通常选取g和h具有相同的概率分布类型(比如已知h是指数分布,那么就选g也是指数分布)----参数估计,只是pdf参数不一样(实际上h中的参数根本就是未知的)。交叉熵反应了文本类别的概率分布与在出现了某个词条的情况下文本类别的概率分布之间的距离。词条的交叉熵越大,对文本类别分布影响也就越大。
12. 相关系数( Correlation coefficient )与相关距离(Correlation distance)
(1)相关系数的定义
相关系数是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。
(2)相关距离的定义