转载:https://blog.csdn.net/panglinzhuo/article/details/77801869
马氏距离
用来度量一个样本点P与数据分布为D的集合的距离。
假设样本点为:
数据集分布的均值为:
协方差矩阵为S。
则这个样本点P与数据集合的马氏距离为:
马氏距离也可以衡量两个来自同一分布的样本x和y的相似性:
当样本集合的协方差矩阵是单位矩阵时,即样本的各个维度上的方差均为1.马氏距离就等于欧式距离相等。
当协方差矩阵是对角矩阵时,即样本数据在各个维度上的方差可能不为1.此时,
可以看做是标准化了的欧氏距离。其中,si为样本数据在第i个维度上的标准差。
思考
1.为什么马氏距离是尺度无关的?
想判断一个点是否属于一个集合,首先计算出这个集合的中心点(通过计算这个集合中所有样本的均值向量可以得到),然后求出这个点到中心点的距离,若大于一个阈值则认为不属于这个集合。但是这样有个问题,有的集合包含的范围比较大,待分类样本虽然离此集合中心点较其他集合的中心点远,但实际上属于这个集合,这就是尺度对分类结果的影响。为了消除这个影响,计算出集合中所有数据点到中心点的平均距离,这样,范围大的集合计算出来的平均距离就会较范围小的集合平均距离大,这个平均距离就是下式中的分母:标准差。
上式使得马氏距离具有尺度不变性。
但是这样还有问题,上面的式子只适合集合是圆形区域分布的,如下图:
![3_in_1_out](http://img7.ph.126.net/j3woxaw-llEYI6Abu2G66A==/1547267946995808537.jpg)
对于下面的椭圆形例子,A点距离中心点更近,但是A点离集合边缘更近,更危险,一不小心就不属于这个集合了。所以仅仅通过上式得到的距离来衡量一个点属于一个集合的概率是不准确的。
![3_in_1_out](http://img5.ph.126.net/-QPQackkfQ15tmqIi-XdUA==/1152077079694050405.gif)
假设一个样本集合的维度是N,数据在各个维度上的方差已知(方差较大的方向是数据主要的变化方向),可以把方差看做各个方向上的轴长,方差越大,轴越长,数据点在这个方向上就越不容易掉下悬崖,也就越安全。如果待测样本在各个维度上与集合中心的距离都远远小于这个维度上的轴长,那么这个样本属于集合的概率就越大。协方差矩阵的对角线元素就代表了各个维度上的方差。
再次看上式,可以认为,对每一个待测样本,都计算一下其与集合中心的距离,接着,在各个方向上均除以轴长(协方差矩阵求逆),最后再乘起来,整个结果越小则说明样本越靠近集合的中心。
2.那么协方差矩阵的非对角线是干嘛的?
这个我也不太清楚,我猜是它们的存在使得马氏距离可以将样本不同纬度特征的相关性关联起来。
参考网址:
https://en.wikipedia.org/wiki/Mahalanobis_distance