新浪博客

数学中的常见的距离公式

2017-05-09 16:02阅读:

数学中的常见的距离公式


2016-03-15 09:28 6204人阅读 评论(0) 收藏 举报
数学中的常见的距离公式 分类:

最近看到文章中对距离的衡量依据所针对的问题,针对所使用到的各种距离公式从网上搜罗如下


  • 1. 欧氏距离,最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中,如点 x = (x1,...,xn) 和 y = (y1,...,yn) 之间的距离为:

(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离



(2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:


(3)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:


  也可以用表示成向量运算的形式:

其上,二维平面上两点欧式距离,代码可以如下编写:

  1. //unixfy:计算欧氏距离
  2. double euclideanDistance(const vector<</span>double>& v1, const vector<</span>double>& v2)
  3. {
  4. assert(v1.size() == v2.size());
  5. double ret = 0.0;
  6. for (vector<</span>double>::size_type i = 0; i != v1.size(); ++i)
  7. {
  8. ret += (v1[i] - v2[i]) * (v1[i] - v2[i]);
  9. }
  10. return sqrt(ret);
  11. }


  • 2. 曼哈顿距离,我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。例如在平面上,坐标(x1, y1)的点P1与坐标(x2, y2)的点P2的曼哈顿距离为: ,要注意的是,曼哈顿距离依赖座标系统的转度,而非系统在座标轴上的平移或映射。

通俗来讲,想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。而实际驾驶距离就是这个“曼哈顿距离”,此即曼哈顿距离名称的来源, 同时,曼哈顿距离也称为城市街区距离(City Block distance)。


(1)二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离





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



  • 3. 切比雪夫距离,若二个向量或二个点p 、and q,其座标分别为 ,则两者之间的切比雪夫距离定义如下:
这也等于以下Lp度量的极值: ,因此切比雪夫距离也称为L∞度量。
以数学的观点来看,切比雪夫距离是由一致范数(uniform norm)(或称为上确界范数)所衍生的度量,也是超凸度量(injective metric space)的一种。
在平面几何中,若二点p及q的直角坐标系坐标为 ,则切比雪夫距离为:
玩过国际象棋的朋友或许知道,国王走一步能够移动到相邻的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)间的切比雪夫距离   




这个公式的另一种等价形式是




  • 4. 闵可夫斯基距离(Minkowski Distance),闵氏距离不是一种距离,而是一组距离的定义。

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




其中p是一个变参数。
当p=1时,就是曼哈顿距离
当p=2时,就是欧氏距离
当p→∞时,就是切比雪夫距离
根据变参数的不同,闵氏距离可以表示一类的距离。
  • 5. 标准化欧氏距离 (Standardized Euclidean distance ),标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。至于均值和方差标准化到多少,先复习点统计学知识。
    假设样本集X的数学期望或均值(mean)为m,标准差(standard deviation,方差开根)为s,那么X的“标准化变量”X*表示为:(X-m)/s,而且标准化变量的数学期望为0,方差为1。
    即,样本集的标准化过程(standardization)用公式描述就是:
    标准化后的值 = ( 标准化前的值 分量的均值 ) /分量的标准差  
    经过简单的推导就可以得到两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的标准化欧氏距离的公式:  
    如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)。
  • 6. 马氏距离(Mahalanobis Distance)
    (1)马氏距离定义
    有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:
    (协方差矩阵中每个元素是各个矢量元素之间的协方差Cov(X,Y),Cov(X,Y) = E{ [X-E(X)] [Y-E(Y)]},其中E为数学期望)
    而其中向量Xi与Xj之间的马氏距离定义为:
    若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:
    也就是欧氏距离了。  
    若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。
    (2)马氏距离的优缺点:量纲无关,排除变量之间的相关性的干扰。
    「微博上的seafood高清版点评道:原来马氏距离是根据协方差矩阵演变,一直被老师误导了,怪不得看Killian在05年NIPS发表的LMNN论文时候老是看到协方差矩阵和半正定,原来是这回事」
  • 7、巴氏距离(Bhattacharyya Distance),

我的更多文章

下载客户端阅读体验更佳

APP专享