马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是,它考虑到各种特性之间的联系,本文介绍马氏距离相关内容。
欧氏距离的缺点
距离度量在各个学科中有着广泛用途,当数据表示为向量overrightarrow{mathbf{x} }=left(x_{1}, x_{2}, cdots, x_{n}right)^{T}和overrightarrow{mathbf{y}}=left(y_{1}, y_{2}, cdots, y_{n}right)^{T}时,最直观的距离度量就是欧式距离了:
但是这种度量方式没有考虑到各个维度之间的差异和相关等因素,不同的向量度量距离时权重都相同,这可能会对结果可信度产生干扰。
马氏距离
度量样本距离某个分布的距离,先将样本与分布标准化到多维标准正态分布后度量欧式距离
思想
- 将变量按照主成分进行旋转,消除维度间的相关性
- 对向量和分布进行标准化,让各个维度同为标准正态分布
推导
- 分布由n个m维向量刻画,即共n条数据,每条数据由一个m维向量表示:
- X的均值为{mu _X}
- X的协方差矩阵为:
- 为消除维度间的相关性,通过一个m times m的矩阵Q^T对X进行坐标表换,将数据映射到新的坐标系下,用Y表示:
此时我们期望在Q^T的作用下,Y 的向量表示中,不同维度之间是相互独立的,此时Y 的协方差矩阵应该是一个对角矩阵(除对角线元素外,其余元素均为0)。
- Y 的均值:u_{Y}=Q^{T} u_{X}
- Y 的协方差矩阵:
- 从这里可以发现,当 Q 是Sigma_{X}的特征向量组成的矩阵时,Sigma_{Y} 一定是对角矩阵,且值为每个特征向量对应的特征值。由于Sigma_{X}是对称矩阵,因此肯定可以通过特征分解得到 Q ,且 Q 是正交矩阵。
- Sigma_{Y}的对角线元素含义为Y中每个向量的方差,因此均为非负值,从这个角度可以说明协方差矩阵的特征值为非负值。
- 而且事实上协方差矩阵本身就是半正定的,特征值均非负
- 不相关与独立的问题:
- 此处我们说明了变换后的向量之间相关系数为0,也就是向量之间不相关
- 而事实上独立是比不相关更强的约束,不相关往往不能推出独立
- 但在高斯分布下,不相关和独立是等价的
接下来我们对向量进行标准化
- 当我们减去均值后,向量已经变成了0均值的向量,距离标准化仅差将方差变为1
- 在经历了Y=Q^TX变换后,Y的协方差矩阵已经成为了对角阵,对角线元素为Y中各个维度数据的方差,那么我们仅需让Y中各个维度数据除以该维度数据的标准差即可。
- 我们将去相关化、0均值化、标准化过后的数据记为Z:
- 而马氏距离就是度量纠正过后的向量Z到分布中心(原点)的欧式距离:
参考资料
- https://baike.baidu.com/item/马氏距离/8927833?fr=aladdin
- https://zhuanlan.zhihu.com/p/109100222