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

欧氏距离(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 = ( x 1 , x 2 , … , x n ) T x=(x_1,x_2,…,x_n)^T x=(x1,x2,,xn)T是n维向量, μ = ( μ 1 , μ 2 , … , μ n ) T \mu=(\mu_1,\mu_2,…,\mu_n)^T μ=(μ1,μ2,,μn)T是样本分布的中心,即 d ( x , μ ) = ∑ i = 1 n ( x i − μ 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 = ( x 1 , x 2 , … , x n ) T x=(x_1,x_2,…,x_n)^T x=(x1,x2,,xn)T y = ( y 1 , y 2 , … , y n ) T y=(y_1,y_2,…,y_n)^T y=(y1,y2,,yn)T均为n维向量,即 d ( x , y ) = ∑ i = 1 n ( x i − y i ) 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个一维数据 ( x 1 , x 2 , … , x m ) (x_1,x_2,…,x_m) (x1,x2,,xm),它们的方差为: σ 2 = ∑ i = 1 m ( x i − μ ) 2 m − 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 = [ x 11 x 21 … x m 1 x 12 x 22 … x m 2 … … … … x 1 n x 2 n … x m n ] = [ X 1 X 2 … X n ] \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 X X X的每一列对应样本集中的一个n维数据,数据集中共包括m个样本,其中每一维的均值为 μ i = E ( X i ) \mu_i=E(X_i) μi=E(Xi)。该样本集的协方差矩阵为: S = ( X − μ ) ( X − μ ) T m − 1 \begin{aligned} S=\frac{(X-\mu)(X-\mu)^T}{m-1} \end{aligned} S=m1(Xμ)(Xμ)T
马氏距离
  1. 度量样本和样本分布间的距离 d = ( x − μ ) T S − 1 ( x − μ ) \begin{aligned} d=\sqrt{(x-\mu)^TS^{-1}(x-\mu)} \end{aligned} d=(xμ)TS1(xμ) 其中 x = ( x 1 , x 2 , … , x n ) T x=(x_1,x_2,…,x_n)^T x=(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. 原空间
    在原空间中,数据集各维之间存在相关性,且各维的方差存在差异。此时某个样本 x x x到聚类中心的马氏距离为: d = x T S X − 1 x \begin{aligned} d=\sqrt{x^TS_X^{-1}x} \end{aligned} d=xTSX1x 原空间中样本集的协方差矩阵为: S X = E ( X X T ) = [ σ x 1 2 c o v ( x 1 , x 2 ) c o v ( x 2 , x 1 ) σ x 2 2 ] \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 = A x y=Ax y=Ax,其中 A A A是正交矩阵,即 x = A − 1 y = A T y \begin{aligned} x=A^{-1}y=A^Ty \end{aligned} x=A1y=ATy该空间中样本集的协方差矩阵为: S Y = E ( Y Y T ) = E ( A x x T A T ) = A S X A − 1 \begin{aligned} S_Y=E(YY^T)=E(Axx^TA^T)=AS_XA^{-1} \end{aligned} SY=E(YYT)=E(AxxTAT)=ASXA1即:
    S X = A − 1 S Y A \begin{aligned} S_X=A^{-1}S_YA \end{aligned} SX=A1SYA在当前空间中,样本集的协方差矩阵为: S Y = [ σ y 1 2 0 0 σ y 2 2 ] S_Y=\left[ \begin{matrix} \sigma_{y_1}^2&0\\ 0&\sigma_{y_2}^2 \end{matrix} \right] SY=[σy1200σy22]也就是说,在当前空间中,数据的各维不相关。在这里插入图片描述
  3. 各维方差归一化
    [ z 1 z 2 ] = [ 1 σ 1 0 0 1 σ 2 ] [ y 1 y 2 ] = [ y 1 σ 1 y 2 σ 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 σ 1 0 0 1 σ 2 ] B=\left[ \begin{matrix} \frac{1}{\sigma_1}&0\\0&\frac{1}{\sigma_2} \end{matrix} \right] B=[σ1100σ21]则: z = B y z=By z=By y = B − 1 z y=B^{-1}z y=B1z。在该空间中,样本集的协方差矩阵为: S Z = E ( Z Z T ) = E ( B Y Y T B T ) = B S Y B T \begin{aligned} S_Z=E(ZZ^T)=E(BYY^TB^T)=BS_YB^T \end{aligned} SZ=E(ZZT)=E(BYYTBT)=BSYBT即: S Y = B − 1 S Z B − 1 \begin{aligned} S_Y=B^{-1}S_ZB^{-1} \end{aligned} SY=B1SZB1在当前空间中,样本集的协方差矩阵为:
    S Z = [ 1 0 0 1 ] S_Z=\left[ \begin{matrix} 1&0\\ 0&1 \end{matrix} \right] SZ=[1001]也就是说,在当前空间中,数据各维的方差均为1。在这里插入图片描述

综上所述,原空间的马氏距离为: d = x T S X − 1 x = y T A A − 1 S Y − 1 A A T y = y T S Y − 1 y = z T B − 1 B S Z B B − 1 z = z T S Z z = z T z \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


马氏距离的优势

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值