距离计算方法总结

www.zhiqu.org     时间: 2024-06-02

在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。

本文的目的就是对常用的相似性度量作一个总结。

欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。\

(1) 二维平面上两点a(x 1 ,y 1 ) 与 b(x 2 ,y 2 )间的欧氏距离:

(2) 三维空间两点a(x 1 ,y 1 ,z 1 )与b(x 2 ,y 2 ,z 2 )间的欧氏距离:

(3) 两个n维向量a(x 11 ,x 12 ,…,x 1n )与 b(x 21 ,x 22 ,…,x 2n )间的欧氏距离:

从名字就可以猜出这种距离的计算方法了。想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为 城市街区距离(City Block distance)。
(1) 二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离

(2) 两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的曼哈顿距离

国际象棋玩过么?国王走一步能够移动到相邻的8个方格中的任意一个。那么国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?自己走走试试。你会发现最少步数总是max( | x2-x1 | , | y2-y1 | ) 步 。有一种类似的一种距离度量方法叫切比雪夫距离。
(1) 二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离

(2) 两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的切比雪夫距离

看不出两个公式是等价的?提示一下:试试用放缩法和夹逼法则来证明。

闵氏距离不是一种距离,而是一组距离的定义。
(1) 闵氏距离的定义
两个n维变量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:

其中p是一个变参数。
当p=1时,就是曼哈顿距离
当p=2时,就是欧氏距离
当p→∞时,就是切比雪夫距离
根据变参数的不同,闵氏距离可以表示一类的距离。

(2)闵氏距离的缺点
闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点。

举个例子:二维样本(身高,体重),其中身高范围是150-190,体重范围是50-60,有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c之间的闵氏距离,但是身高的10cm真的等价于体重的10kg么?因此用闵氏距离来衡量这些样本间的相似度很有问题。
简单说来,闵氏距离的缺点主要有两个:
(1) 将各个分量的量纲(scale),也就是“单位”当作相同的看待了。
(2) 没有考虑各个分量的分布(期望,方差等)可能是不同的。

(1) 标准欧氏距离的定义
标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,好吧!那我先将各个分量都“标准化”到均值、方差相等吧。均值和方差标准化到多少呢?这里先复习点统计学知识吧,假设样本集X的均值(mean)为m,标准差(standard deviation)为s,那么X的“标准化变量”表示为:

如果将方差的倒数看成是一个权重,这个公式可以看成是一种 加权欧氏距离(Weighted Euclidean distance)。

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

若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:

也就是欧氏距离了。
若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。

(2)马氏距离的优缺点 :量纲无关,排除变量之间的相关性的干扰。

有没有搞错,又不是学几何,怎么扯到夹角余弦了?各位看官稍安勿躁。几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。
(1) 在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:

(2) 两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦

夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。

(1)汉明距离的定义
两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。例如字符串“1111”与“1001”之间的汉明距离为2。
应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。

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

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

(2) 杰卡德距离
与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。杰卡德距离可用如下公式表示:

杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

(3) 杰卡德相似系数与杰卡德距离的应用
可将杰卡德相似系数用在衡量样本的相似度上。
样本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的维度的个数
那么样本A与B的杰卡德相似系数可以表示为:
这里p+q+r可理解为A与B的并集的元素个数,而p是A与B的交集的元素个数。
而样本A与B的杰卡德距离表示为:

相关系数是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关)。

(2)相关距离的定义

信息熵并不属于一种相似性度量。那为什么放在这篇文章中啊?这个。。。我也不知道。 (╯▽╰)
信息熵是衡量分布的混乱程度或分散程度的一种度量。分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。

参数的含义:
n:样本集X的分类数
pi:X中第i类元素出现的概率
信息熵越大表明样本集S分类越分散,信息熵越小则表明样本集X分类越集中。。当S中n个分类出现的概率一样大时(都是1/n),信息熵取最大值log2(n)。当X只有一个分类时,信息熵取最小值0



~


#童淑虹# 如何计算图像中两点(象素)之间的距离 -
(19790655803): 可以根据坐标系的方法来计算图像中两点之间的距离. 设图像两点坐标为M点(x1,y1),N点(x2,y2),² 那么两点距离就是:MN=√【(x2-x1)²-(y2-y1)²】. 例如:x1=4,y1=2,x2=7,y2=6, 那么这两点之间局离为:√【(7-4)²-(6-2)²】=5. ...

#童淑虹# 谁能帮我总结一下这些距离公式啊....
(19790655803): 点到点的距离 点与点的连线 点到直线的距离 点到直线的垂线 点到面的距离 点到面的垂线 线到线的距离 一条线上的一点向另一条线作垂线 直线到平面距离 直线上的一点到面的垂线

#童淑虹# 两平行平面间的距离公式 -
(19790655803): s1: aX+ bY +cZ +D1=0 s2: aX+ bY +cZ +D2=0 d=|D1-D2|/√(a²+b²+c²) 证明: 设点(x',y',z')为平面s1上一点,点到平面的距离公式为d=|ax'+by'+cz'+D|/√a²+b²+c².则点(x',y',z')到平面s2的距离为d=|ax'+by'+cz'+D2|√(a²+b²+c²),...

#童淑虹# 知道两个xy坐标怎么计算距离
(19790655803): 如果两个点的坐标参照系相同的话,对于同一平面内(即x、y相同Z相同)计算原理就按:两点坐标点X值之差的平方加Y值之差的平方后再开平方.如果不在同一平面内(...

#童淑虹# 经纬度及距离的计算 -
(19790655803): 打开EXCEL1、在A2、B2、C2、D2单元格填上两地经纬度.EXCEL根据两点经纬度计算距离2、在E2单元格输入公式=6371004*ACOS(1-(POWER((SIN((90-B2)*PI()/180)*COS(A2*PI()/180)-SIN((90-D2)*PI()/180)*COS(C2*PI()/180)),2)+POWER((SIN((90-B2)*P

#童淑虹# 应该怎样正确计算一个物体从一个位置移动到另一个位置之间的距离 -
(19790655803): 那计算的方法可就多了(不考虑三维空间哈).步量、尺量、激光测距、GPS测距、声纳测距等等.

#童淑虹# 关于高中地理中地球经纬度距离的计算要经纬线的概念,计算距离的方法等 - 作业帮
(19790655803):[答案] 因为地球是圆的,所以在不同纬度地区,经度相差N度的时候,实际距离是不一样的.在赤道地区最大,两极最小..地球并非是很规则的正球体.它的表面可以用一个扁率不大的旋转椭球面来极好地逼近.扁率e为椭球长短轴之差与长轴...

#童淑虹# 平行线之间的距离怎么算?
(19790655803): 如果知道两条直线在坐标轴上的表达式的话可以去一条直线上的任意一点然后用点到直线的距离公式来算已知点P(a,b),求到直线Ax By C=0的距离公式是这样子:|Aa Bb C|/(√(A^2 B^2))

#童淑虹# 怎么算地球上任意两地的直线距离 -
(19790655803): 球面两点最短距离是过这两点的大圆(半径等于球体的半径)的劣弧.已知两地的经度分别为σ1、σ2,纬度分别为φ1、φ2,求两地最近距离的公式为:S=2πRθ/360° (1) 其中θ可由下面的式子求得:[sin(θ/2)]^2=[sin(φ1-φ2)/2]^2+[sin(σ2-σ1)/2]^2cosφ...

#童淑虹# 有什么统计方法计算条件和无条件分布函数的距离 -
(19790655803): 聚类分析有两种主要计算方法,分别是凝聚层次聚类(Agglomerative hierarchical method)和K均值聚类(K-Means).一、层次聚类 层次聚类又称为系统聚类,首先要定义样本之间的距离关系,距离较近的归为一类,较远的则属于不同的类....