「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」。
马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是,它考虑到各种特性之间的联系,本文介绍马氏距离相关内容。
欧氏距离的缺点
距离度量在各个学科中有着广泛用途,当数据表示为向量
x
=(x1,x2,⋯,xn)T和
y
=(y1,y2,⋯,yn)T时,最直观的距离度量就是欧式距离了:
{% raw %}
d(x,y):=(x1−y1)2+(x2−y2)2+⋯+(xn−yn)2
=i=1∑n(xi−yi)2
{% endraw %}
但是这种度量方式没有考虑到各个维度之间的差异和相关等因素,不同的向量度量距离时权重都相同,这可能会对结果可信度产生干扰。
马氏距离
度量样本距离某个分布的距离,先将样本与分布标准化到多维标准正态分布后度量欧式距离
思想
- 将变量按照主成分进行旋转,消除维度间的相关性
- 对向量和分布进行标准化,让各个维度同为标准正态分布
推导
- 分布由
n个
m维向量刻画,即共
n条数据,每条数据由一个
m维向量表示:
{% 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 %}
-
X的均值为
μX
-
X的协方差矩阵为:
∑X=n1(X−μX)(X−μX)T
- 为消除维度间的相关性,通过一个
m×m的矩阵
QT对
X进行坐标表换,将数据映射到新的坐标系下,用
Y表示:
此时我们期望在
QT的作用下,
Y 的向量表示中,不同维度之间是相互独立的,此时
Y 的协方差矩阵应该是一个对角矩阵(除对角线元素外,其余元素均为0)。
- Y 的均值:
uY=QTuX
- Y 的协方差矩阵:
{% raw %}
扫描二维码关注公众号,回复:
13673320 查看本文章
ΣY=n1[Y−uY][y−uY]T=n1[QT(X−ux)][QT(X−uX)]T=QTn1(X−uX)(X−uX)TQ=QTΣXQ
{% endraw %}
-
从这里可以发现,当
Q是
ΣX的特征向量组成的矩阵时,
ΣY 一定是对角矩阵,且值为每个特征向量对应的特征值。由于
ΣX是对称矩阵,因此肯定可以通过特征分解得到
Q ,且
Q 是正交矩阵。
-
ΣY的对角线元素含义为
Y中每个向量的方差,因此均为非负值,从这个角度可以说明协方差矩阵的特征值为非负值。
-
而且事实上协方差矩阵本身就是半正定的,特征值均非负
-
不相关与独立的问题:
- 此处我们说明了变换后的向量之间相关系数为0,也就是向量之间不相关
- 而事实上独立是比不相关更强的约束,不相关往往不能推出独立
- 但在高斯分布下,不相关和独立是等价的
接下来我们对向量进行标准化
-
当我们减去均值后,向量已经变成了0均值的向量,距离标准化仅差将方差变为1
-
在经历了
Y=QTX变换后,
Y的协方差矩阵已经成为了对角阵,对角线元素为
Y中各个维度数据的方差,那么我们仅需让
Y中各个维度数据除以该维度数据的标准差即可。
-
我们将去相关化、0均值化、标准化过后的数据记为
Z:
{% 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 %}
-
而马氏距离就是度量纠正过后的向量
Z到分布中心(原点)的欧式距离:
{% raw %}
DM(X)=ZTZ
=(X−uX)TQ(QTΣXQ)−21(QTΣXQ)−21QT(X−uX)
=(X−uX)TQ(QTΣXQ)−1QT(X−uX)
=(X−uX)TQQ−1ΣX−1QQT(X−uX)
=(X−uX)TΣX−1(X−uX)
{% endraw %}
参考资料