马氏距离 (马哈拉诺比斯距离) (Mahalanobis distance)

2,440 阅读3分钟

「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」。

马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是,它考虑到各种特性之间的联系,本文介绍马氏距离相关内容。

欧氏距离的缺点

距离度量在各个学科中有着广泛用途,当数据表示为向量x=(x1,x2,,xn)T\overrightarrow{\mathbf{x} }=\left(x_{1}, x_{2}, \cdots, x_{n}\right)^{T}y=(y1,y2,,yn)T\overrightarrow{\mathbf{y}}=\left(y_{1}, y_{2}, \cdots, y_{n}\right)^{T}时,最直观的距离度量就是欧式距离了:

{% raw %}

d(x,y):=(x1y1)2+(x2y2)2++(xnyn)2=i=1n(xiyi)2d(x, y):=\sqrt{\left(x_{1}-y_{1}\right)^{2}+\left(x_{2}-y_{2}\right)^{2}+\cdots+\left(x_{n}-y_{n}\right)^{2}}=\sqrt{\sum_{i=1}^{n}\left(x_{i}-y_{i}\right)^{2}}

{% endraw %}

但是这种度量方式没有考虑到各个维度之间的差异和相关等因素,不同的向量度量距离时权重都相同,这可能会对结果可信度产生干扰。

马氏距离

度量样本距离某个分布的距离,先将样本与分布标准化到多维标准正态分布后度量欧式距离

思想

  • 将变量按照主成分进行旋转,消除维度间的相关性
  • 对向量和分布进行标准化,让各个维度同为标准正态分布

推导

  • 分布由nnmm维向量刻画,即共nn条数据,每条数据由一个mm维向量表示:

{% raw %}

X = \left[ {\begin{array}{*{20}{c}} {{x_{11}}}&{{x_{12}}}& \cdots &{{x_{1n}}}\\ {{x_{21}}}&{{x_{22}}}&{}&{{x_{2n}}}\\ \vdots &{}& \ddots & \vdots \\ {{x_{m1}}}&{{x_{m2}}}& \cdots &{{x_{mn}}} \end{array}} \right]

{% endraw %}

  • XX的均值为μX{\mu _X}
  • XX的协方差矩阵为:
X=1n(XμX)(XμX)T\sum\nolimits_X = \frac{1}{n}(X - {\mu _X}){(X - {\mu _X})^T}
  • 为消除维度间的相关性,通过一个m×mm \times m的矩阵QTQ^TXX进行坐标表换,将数据映射到新的坐标系下,用YY表示:
Y=QTXY=Q^TX

此时我们期望在QTQ^T的作用下,YY 的向量表示中,不同维度之间是相互独立的,此时YY 的协方差矩阵应该是一个对角矩阵(除对角线元素外,其余元素均为0)。

  • Y 的均值:uY=QTuXu_{Y}=Q^{T} u_{X}
  • Y 的协方差矩阵:

{% raw %}

ΣY=1n[YuY][yuY]T=1n[QT(Xux)][QT(XuX)]T=QT1n(XuX)(XuX)TQ=QTΣXQ\begin{aligned} \Sigma_{Y} &=\frac{1}{n}\left[Y-u_{Y}\right]\left[y-u_{Y}\right]^{T} \\ &=\frac{1}{n}\left[Q^{T}\left(X-u_{x}\right)\right]\left[Q^{T}\left(X-u_{X}\right)\right]^{T} \\ &=Q^{T} \frac{1}{n}\left(X-u_{X}\right)\left(X-u_{X}\right)^{T} Q \\ &=Q^{T} \Sigma_{X} Q \end{aligned}

{% endraw %}

  • 从这里可以发现,当 QQ ΣX\Sigma_{X}的特征向量组成的矩阵时,ΣY\Sigma_{Y} 一定是对角矩阵,且值为每个特征向量对应的特征值。由于ΣX\Sigma_{X}是对称矩阵,因此肯定可以通过特征分解得到 QQ ,且 QQ 是正交矩阵。

  • ΣY\Sigma_{Y}的对角线元素含义为YY中每个向量的方差,因此均为非负值,从这个角度可以说明协方差矩阵的特征值为非负值。

  • 而且事实上协方差矩阵本身就是半正定的,特征值均非负

  • 不相关与独立的问题:

接下来我们对向量进行标准化

  • 当我们减去均值后,向量已经变成了0均值的向量,距离标准化仅差将方差变为1

  • 在经历了Y=QTXY=Q^TX变换后,YY的协方差矩阵已经成为了对角阵,对角线元素为YY中各个维度数据的方差,那么我们仅需让YY中各个维度数据除以该维度数据的标准差即可。

  • 我们将去相关化、0均值化、标准化过后的数据记为ZZ

    {% raw %}

    \begin{aligned} Z &= \left[ {\begin{array}{*{20}{c}} {\frac{1}{{{\sigma _1}}}}&{}&{}&{}\\ {}&{\frac{1}{{{\sigma _2}}}}&{}&{}\\ {}&{}& \ddots &{}\\ {}&{}&{}&{\frac{1}{{{\sigma _n}}}} \end{array}} \right](Y - {\mu _Y}) \\&= \Sigma _Y^{ - \frac{1}{2}}{Q^T}(X - {\mu _X}) \\ &= ({Q^T}{\Sigma _X}Q)_{}^{ - \frac{1}{2}}{Q^T}(X - {\mu _X}) \end{aligned}

    {% endraw %}

  • 而马氏距离就是度量纠正过后的向量ZZ到分布中心(原点)的欧式距离:

    {% raw %}

DM(X)=ZTZ=(XuX)TQ(QTΣXQ)12(QTΣXQ)12QT(XuX)=(XuX)TQ(QTΣXQ)1QT(XuX)=(XuX)TQQ1ΣX1QQT(XuX)=(XuX)TΣX1(XuX)\begin{array}{l} {D_M}(X) & = \sqrt {{Z^T}Z} \\&= \sqrt {{{\left( {X - {u_X}} \right)}^T}Q{{\left( {{Q^T}{\Sigma _X}Q} \right)}^{ - \frac{1}{2}}}{{\left( {{Q^T}{\Sigma _X}Q} \right)}^{ - \frac{1}{2}}}{Q^T}\left( {X - {u_X}} \right)} \\ &= \sqrt {{{\left( {X - {u_X}} \right)}^T}Q{{\left( {{Q^T}{\Sigma _X}Q} \right)}^{ - 1}}{Q^T}\left( {X - {u_X}} \right)} \\ &= \sqrt {{{\left( {X - {u_X}} \right)}^T}Q{Q^{ - 1}}\Sigma _X^{ - 1}Q{Q^T}\left( {X - {u_X}} \right)} \\ &= \sqrt {{{\left( {X - {u_X}} \right)}^T}\Sigma _X^{-1}\left( {X - {u_X}} \right)} \\ \end{array}

{% endraw %}

参考资料