欧式距离和马氏距离的关系(公式推导)

本文详细解析了欧氏距离和马氏距离的概念及应用,对比了两者在衡量样本间距离上的区别,特别是在考虑数据分布特性时马氏距离的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欧氏距离(Euclidean Distance)与马氏距离(Mahalanobis Distance)

欧氏距离
  1. 度量样本和样本分布间的距离d(x,μ)=(x−μ)T(x−μ) \begin{aligned} d(x,\mu)=\sqrt{(x-\mu)^T(x-\mu)} \end{aligned} d(x,μ)=(xμ)T(xμ)其中x=(x1,x2,…,xn)Tx=(x_1,x_2,…,x_n)^Tx=(x1,x2,,xn)T是n维向量,μ=(μ1,μ2,…,μn)T\mu=(\mu_1,\mu_2,…,\mu_n)^Tμ=(μ1,μ2,,μn)T是样本分布的中心,即 d(x,μ)=∑i=1n(xi−μi)2 \begin{aligned} d(x,\mu)=\sqrt{\sum_{i=1}^n(x_i-\mu_i)^2} \end{aligned} d(x,μ)=i=1n(xiμi)2
  2. 度量样本和样本的距离 d(x,y)=(x−y)T(x−y) \begin{aligned} d(x,y)=\sqrt{(x-y)^T(x-y)} \end{aligned} d(x,y)=(xy)T(xy)其中,x=(x1,x2,…,xn)Tx=(x_1,x_2,…,x_n)^Tx=(x1,x2,,xn)Ty=(y1,y2,…,yn)Ty=(y_1,y_2,…,y_n)^Ty=(y1,y2,,yn)T均为n维向量,即d(x,y)=∑i=1n(xi−yi)2 \begin{aligned} d(x,y)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2} \end{aligned} d(x,y)=i=1n(xiyi)2
协方差
  1. 对于m个一维数据(x1,x2,…,xm)(x_1,x_2,…,x_m)(x1,x2,,xm),它们的方差为:σ2=∑i=1m(xi−μ)2m−1 \begin{aligned} \sigma^2=\frac{\sum_{i=1}^m(x_i-\mu)^2}{m-1} \end{aligned} σ2=m1i=1m(xiμ)2方差反应数据的离散程度,但高维数据没有方差的概念,高维数据集通常使用协方差描述数据各个维度之间的相关性。
  2. 对m个n维数据X=[x11x21…xm1x12x22…xm2…………x1nx2n…xmn]=[X1X2…Xn] \begin{aligned} X=\left[ \begin{matrix} x_{11}&x_{21}&…&x_{m1} \\ x_{12}&x_{22}&…&x_{m2} \\ …&…&…&… \\ x_{1n}&x_{2n}&…&x_{mn} \end{matrix} \right] =\left[ \begin{matrix} X_1\\ X_2\\…\\X_n \end{matrix} \right] \end{aligned} X=x11x12x1nx21x22x2nxm1xm2xmn=X1X2Xn XXX的每一列对应样本集中的一个n维数据,数据集中共包括m个样本,其中每一维的均值为μi=E(Xi)\mu_i=E(X_i)μi=E(Xi)。该样本集的协方差矩阵为:S=(X−μ)(X−μ)Tm−1 \begin{aligned} S=\frac{(X-\mu)(X-\mu)^T}{m-1} \end{aligned} S=m1(Xμ)(Xμ)T
马氏距离
  1. 度量样本和样本分布间的距离d=(x−μ)TS−1(x−μ) \begin{aligned} d=\sqrt{(x-\mu)^TS^{-1}(x-\mu)} \end{aligned} d=(xμ)TS1(xμ)其中x=(x1,x2,…,xn)Tx=(x_1,x_2,…,x_n)^Tx=(x1,x2,,xn)T是n维向量,μ=(μ1,μ2,…,μn)T\mu=(\mu_1,\mu_2,…,\mu_n)^Tμ=(μ1,μ2,,μn)T是样本分布的中心,S是样本集的协方差矩阵。

实例分析

在这里插入图片描述已知一个聚类,A为该聚类的聚类中心,聚类的其他样本由红色标出。对于样本B、C,如果要判断谁和样本A的距离最近,可以采用以下两种方式:

  1. 使用欧式距离判断,显然C离A更近。但此时并没有考虑数据的分布,默认数据呈圆形分布,即默认数据各维的方差相同。因此使用欧式距离进行判断并不完善。
  2. 使用马氏距离判断,充分考虑数据各维的相关性和各维的方差,此时应为B距离A更近。

使用欧式距离时,不考虑数据不同维度的方差,也不考虑数据不同维度的相关性。 因此数据集已知时,通常使用马氏距离代替欧式距离。


深入理解(公式推导)

原空间的马氏距离等价于变换空间中的欧式距离。为了方便理解,后面的内容仅讨论二维数据,且各维的均值都为0(数据已中心化)。

  1. 原空间
    在原空间中,数据集各维之间存在相关性,且各维的方差存在差异。此时某个样本xxx到聚类中心的马氏距离为:d=xTSX−1x \begin{aligned} d=\sqrt{x^TS_X^{-1}x} \end{aligned} d=xTSX1x原空间中样本集的协方差矩阵为:SX=E(XXT)=[σx12cov(x1,x2)cov(x2,x1)σx22] \begin{aligned} S_X=E(XX^T)= \left[ \begin{matrix} \sigma_{x_1}^2&cov(x_1,x_2)\\ cov(x_2,x_1)&\sigma_{x_2}^2 \end{matrix} \right] \end{aligned} SX=E(XXT)=[σx12cov(x2,x1)cov(x1,x2)σx22]在这里插入图片描述
  2. 消除数据各维的相关性,即对数据集进行正交变换
    y=Axy=Axy=Ax,其中AAA是正交矩阵,即x=A−1y=ATy \begin{aligned} x=A^{-1}y=A^Ty \end{aligned} x=A1y=ATy该空间中样本集的协方差矩阵为:SY=E(YYT)=E(AxxTAT)=ASXA−1 \begin{aligned} S_Y=E(YY^T)=E(Axx^TA^T)=AS_XA^{-1} \end{aligned} SY=E(YYT)=E(AxxTAT)=ASXA1即:
    SX=A−1SYA \begin{aligned} S_X=A^{-1}S_YA \end{aligned} SX=A1SYA在当前空间中,样本集的协方差矩阵为:SY=[σy1200σy22] S_Y=\left[ \begin{matrix} \sigma_{y_1}^2&0\\ 0&\sigma_{y_2}^2 \end{matrix} \right] SY=[σy1200σy22]也就是说,在当前空间中,数据的各维不相关。在这里插入图片描述
  3. 各维方差归一化
    [z1z2]=[1σ1001σ2][y1y2]=[y1σ1y2σ2]\left[ \begin{matrix} z1\\z2 \end{matrix} \right]= \left[\begin{matrix} \frac{1}{\sigma_1}&0\\0&\frac{1}{\sigma_2} \end{matrix} \right] \left[\begin{matrix} y_1\\y_2 \end{matrix}\right]=\left[\begin{matrix} \frac{y_1}{\sigma_1}\\\frac{y_2}{\sigma_2} \end{matrix}\right] [z1z2]=[σ1100σ21][y1y2]=[σ1y1σ2y2]为了方便表示,令B=[1σ1001σ2] B=\left[ \begin{matrix} \frac{1}{\sigma_1}&0\\0&\frac{1}{\sigma_2} \end{matrix} \right] B=[σ1100σ21]则:z=Byz=Byz=Byy=B−1zy=B^{-1}zy=B1z。在该空间中,样本集的协方差矩阵为:SZ=E(ZZT)=E(BYYTBT)=BSYBT \begin{aligned} S_Z=E(ZZ^T)=E(BYY^TB^T)=BS_YB^T \end{aligned} SZ=E(ZZT)=E(BYYTBT)=BSYBT即:SY=B−1SZB−1 \begin{aligned} S_Y=B^{-1}S_ZB^{-1} \end{aligned} SY=B1SZB1在当前空间中,样本集的协方差矩阵为:
    SZ=[1001] S_Z=\left[ \begin{matrix} 1&0\\ 0&1 \end{matrix} \right] SZ=[1001]也就是说,在当前空间中,数据各维的方差均为1。在这里插入图片描述

综上所述,原空间的马氏距离为:d=xTSX−1x=yTAA−1SY−1AATy=yTSY−1y=zTB−1BSZBB−1z=zTSZz=zTz \begin{aligned} d&=\sqrt{x^TS_X^{-1}x}\\&=\sqrt{y^TAA^{-1}S_Y^{-1}AA^Ty}\\&=\sqrt{y^TS_Y^{-1}y}\\&=\sqrt{z^TB^{-1}BS_ZBB^{-1}z}\\&=\sqrt{z^TS_Zz}\\&=\sqrt{z^Tz} \end{aligned} d=xTSX1x=yTAA1SY1AATy=yTSY1y=zTB1BSZBB1z=zTSZz=zTz也就是说,原空间的马氏距离等价于转换空间中的欧式距离。在转换空间中,数据各维之间不相关且数据各维的方差均为1


马氏距离的优势

当数据分布已知时,通常使用马氏距离代替欧式距离。马氏距离适用于数据各维存在相关性或数据各维方差存在差异(数据分布呈椭圆形)的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值