马氏距离(Mahalanobis Distance)学习笔记

前言

马氏距离(Mahalanobis Distance)同我们熟悉的欧氏距离一样是为了度量数据间的差别。但当数据各个维度的变量分布不同并具有线性相关性时,欧氏距离并不能有效地度量出数据间的真实差别,而马氏距离可以解决这个问题。

1. 马氏距离的概述

马氏距离表示点与一个分布之间的距离。通过计算不同点到一个分布之间的马氏距离,我们可以比较这些点与分布间的相似程度,从而能够辅助推测这些点是否属于该分布。

首先给出两点间马氏距离的公式:
D M ( x , y ) = ( x − y ) T Σ − 1 ( x − y ) D_M(x,y) = \sqrt{(x-y)^T\Sigma^{-1}(x-y)} DM(x,y)=(xy)TΣ1(xy)
其中 x x x y y y(向量)为样本中的两点, Σ − 1 \Sigma^{-1} Σ1为样本各变量间协方差矩阵的逆矩阵,当协方差矩阵为单位矩阵时,两点间的马氏距离等于欧氏距离。

2. 马氏距离的理解

我们分两种情况讨论:

  1. 若变量间线性无关
    在这里插入图片描述
    此时点A与点B距离样本中心点的距离相等,但我们直观地可以看出B更可能属于这个样本,而A大概率是离群点。造成这个结果的原因是在两点到中心点的距离都相等的情况下,样本在到B方向(横轴)的方差比在到A方向(纵轴)的方差要大。
    如果我们要合理地比较两点到此样本的距离,需将每个样本点以及A和B点除以样本每个变量方向上的样本标准差,使得这两个方向的方差等于1(标准化),然后再进行两点到样本中心点距离的比较。此时的距离为马氏距离。
  2. 若变量间线性相关
    在这里插入图片描述
    这次与上面的类似,A,B两点到样本中心点的距离是相等的,并且直观上来说点A是个离群点。但此时样本两个变量方向上的方差是相同的,如果用与上面相同的方法将每个样本点及A,B两点除以各变量方向上的样本标准差,我们会发现虽然此时样本各个变量的方差等于1,但A,B两点到样本中心点的距离依然是相等的,这样的距离无法合理地比较两点与样本间的相似程度。造成这样的原因是这个样本的变量在这个空间内是线性相关的,所以每个变量携带的信息不只是其方向上的单一信息,我们也就不能用方差来解释样本的真实形状。
    那么怎样做才能合理地比较它们与样本中心点的相似程度呢?遇到这种情况,我们首先需要将样本作主成分分析(PCA),消除各变量间的相关性,然后再通过情况1中的方法,算出它们到中心点的马氏距离,从而比较它们与样本的相似程度。

下图为转换后的样本点分布,其中每个点之间的欧氏距离为转换前数据的马氏距离:
在这里插入图片描述

3. 马氏距离公式的推导

设样本有 n n n条数据,每条数据由 m m m维向量表示,矩阵 X X X是每条数据按列构成的 m × n m×n m×n矩阵,矩阵 Y Y Y为由主成分分析得到的新坐标系下的数据,矩阵 P P P由一组 m m m维的基按行构成的矩阵,使得 Y = P X Y = PX Y=PX μ x μ_x μx μ y μ_y μy分别是数据在原空间和新空间各变量均值组成的向量, μ X μ_X μX n n n μ x μ_x μx按列构成的矩阵, μ Y μ_Y μY n n n μ y μ_y μy按列构成的矩阵。

由于
μ Y = P μ X μ_Y = Pμ_X μY=PμX
所以 Y Y Y的协方差矩阵 Σ Y \Sigma_Y ΣY
Σ Y = 1 n ( Y − μ Y ) ( Y − μ Y ) T = 1 n [ P ( X − μ X ) ] [ P ( X − μ X ) ] T = P 1 n ( X − μ X ) ( X − μ X ) T P T = P Σ X P T \begin{aligned} \Sigma_Y & = \frac{1}{n}(Y-μ_Y)(Y-μ_Y)^T \\ & = \frac{1}{n}[P(X- μ_X)][P(X- μ_X)]^T \\ & = P\frac{1}{n}(X- μ_X)(X- μ_X)^TP^T \\ & = P\Sigma_XP^T \end{aligned} ΣY=n1(YμY)(YμY)T=n1[P(XμX)][P(XμX)]T=Pn1(XμX)(XμX)TPT=PΣXPT
其中 Σ X \Sigma_X ΣX X X X的协方差矩阵。由于在新空间数据的各个变量是线性无关的,所以 Σ Y \Sigma_Y ΣY

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值