马氏距离(Mahalanobis distance)

Posted 鹰杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了马氏距离(Mahalanobis distance)相关的知识,希望对你有一定的参考价值。

  马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。 对于一个均值为\\mu = ( \\mu_1, \\mu_2, \\mu_3, \\dots , \\mu_p )^T协方差矩阵为Σ的多变量矢量x = ( x_1, x_2, x_3, \\dots, x_p )^T,其马氏距离为

 

D_M(x) = \\sqrt{(x - \\mu)^T \\Sigma^{-1} (x-\\mu)}
马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量 \\vec{x} \\vec{y}的差异程度:
 d(\\vec{x},\\vec{y})=\\sqrt{(\\vec{x}-\\vec{y})^T\\Sigma^{-1} (\\vec{x}-\\vec{y})}

 

   如果协方差矩阵为单位矩阵,马氏距离就简化为欧式距离;如果协方差矩阵为对角阵,其也可称为正规化的马氏距离。

 

 d(\\vec{x},\\vec{y})=\\sqrt{\\sum_{i=1}^p  {(x_i - y_i)^2 \\over \\sigma_i^2}}

 

其中σi是xi的标准差

 

基础知识

假设空间中两点x,y,定义:

欧几里得距离:

Mahalanobis距离:

不难发现,如果去掉马氏距离中的协方差矩阵,就退化为欧氏距离。那么我们就需要探究这个多出来的因子究竟有什么含义。

 

第一个例子基础知识

从下往上的一段50米长的坡道路,下面定一个A点,上面定B一个点。假设有两种情况从A到B:

a)坐手扶电梯上去。

b)从手扶电梯旁边的楼梯爬上去。

两种情况下我们分别会产生两种不同的主观感受,坐电梯轻松愉快,感觉很快就从A到了B——“A与B真近”;走楼梯爬的气喘吁吁很累,感觉走了好久才走到B——“A与B真远”。

 

第二个例子

观看落日之时,由于大气的折射效应,太阳形状产生形变并且视觉位置也比真实位置高

 

解释

以上两个例子看似和模式识别没有关系,实际上都引入了“相对论”的问题。回到问题本身,欧式距离就好比一个参照值,它表征的是当所有类别等概率出现的情况下,类别之间的距离。此时决策面中心点的位置就是两个类别中心的连线的中点。如图1所示。而当类别先验概率并不相等时,显然,如果仍然用中垂线作为决策线是不合理的,将出现判别错误(绿色类的点被判别为红色类),假设图1中绿色类别的先验概率变大,那么决策线将左移,如图2黄线。左移的具体位置,就是通过马氏距离来获得的。马氏距离中引入的协方差参数,表征的是点的稀密程度。

 

  从哲学上来说,用马氏距离处理数据时,不再把数据单纯的看作是冷冰冰的数字——那个引入的协方差,承认了客观上的差异性,就好像是有了人类的感情倾向,使得模式识别更加“人性化”也更加“视觉直观”。                     

以上是关于马氏距离(Mahalanobis distance)的主要内容,如果未能解决你的问题,请参考以下文章

马氏距离(Mahalanobis distance)

MATLAB求马氏距离(Mahalanobis distance)

20数据判别分析

metric learning -- 马氏距离与欧氏距离

超过2组的R上的马氏距离

R:在 cmeans 中实现 Mahalanobis [e1071]