欧氏距离(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=1∑n​(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)=(x−y)T(x−y)​​其中,x=(x1,x2,…,xn)Tx=(x_1,x_2,…,x_n)^Tx=(x1​,x2​,…,xn​)T、y=(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=1∑n​(xi​−yi​)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=m−1∑i=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=⎣⎢⎢⎡​x11​x12​…x1n​​x21​x22​…x2n​​…………​xm1​xm2​…xmn​​⎦⎥⎥⎤​=⎣⎢⎢⎡​X1​X2​…Xn​​⎦⎥⎥⎤​​ 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=m−1(X−μ)(X−μ)T​​
马氏距离
  1. 度量样本和样本分布间的距离d=(x−μ)TS−1(x−μ)\begin{aligned} d=\sqrt{(x-\mu)^TS^{-1}(x-\mu)} \end{aligned} d=(x−μ)TS−1(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=xTSX−1​x​​原空间中样本集的协方差矩阵为: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)=[σx1​2​cov(x2​,x1​)​cov(x1​,x2​)σx2​2​​]​
  2. 消除数据各维的相关性,即对数据集进行正交变换
    令y=Axy=Axy=Ax,其中AAA是正交矩阵,即x=A−1y=ATy\begin{aligned} x=A^{-1}y=A^Ty \end{aligned} x=A−1y=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)=ASX​A−1​即:
    SX=A−1SYA\begin{aligned} S_X=A^{-1}S_YA \end{aligned} SX​=A−1SY​A​在当前空间中,样本集的协方差矩阵为:SY=[σy1200σy22]S_Y=\left[ \begin{matrix} \sigma_{y_1}^2&0\\ 0&\sigma_{y_2}^2 \end{matrix} \right] SY​=[σy1​2​0​0σy2​2​​]也就是说,在当前空间中,数据的各维不相关。
  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​]=[σ1​1​0​0σ2​1​​][y1​y2​​]=[σ1​y1​​σ2​y2​​​]为了方便表示,令B=[1σ1001σ2]B=\left[ \begin{matrix} \frac{1}{\sigma_1}&0\\0&\frac{1}{\sigma_2} \end{matrix} \right] B=[σ1​1​0​0σ2​1​​]则:z=Byz=Byz=By,y=B−1zy=B^{-1}zy=B−1z。在该空间中,样本集的协方差矩阵为: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)=BSY​BT​即:SY=B−1SZB−1\begin{aligned} S_Y=B^{-1}S_ZB^{-1} \end{aligned} SY​=B−1SZ​B−1​在当前空间中,样本集的协方差矩阵为:
    SZ=[1001]S_Z=\left[ \begin{matrix} 1&0\\ 0&1 \end{matrix} \right] SZ​=[10​01​]也就是说,在当前空间中,数据各维的方差均为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​=xTSX−1​x​=yTAA−1SY−1​AATy​=yTSY−1​y​=zTB−1BSZ​BB−1z​=zTSZ​z​=zTz​​也就是说,原空间的马氏距离等价于转换空间中的欧式距离。在转换空间中,数据各维之间不相关且数据各维的方差均为1


马氏距离的优势

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

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

  1. 数据的距离度量 一、欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离

    数据的距离度量 一.欧式距离,曼哈顿距离,闵氏距离,切比雪夫距离,兰氏距离,马氏距离 前言 欧式距离 标准欧式距离 曼哈顿距离 闵氏距离 切比雪夫距离 兰氏距离 马氏距离 前言 本篇记录一下常用的数据 ...

  2. 六大距离:欧式距离、街道距离、马氏距离等

    文章目录 1 简 介 2 距离特征 2.1 Euclidean距离 2.2 Cosine距离 2.3 manhattan距离 2.4 chebyshev距离 2.5 minkowski距离 2.6 m ...

  3. 距离度量的方法,欧式距离,切比雪夫距离、马氏距离、巴氏距离,曼哈顿距离

    距离度量的方法有欧式距离,切比雪夫距离.马氏距离.巴氏距离,曼哈顿距离等: 用欧氏距离(也称欧几里德度量),高中所学的两点距离公式就是欧氏距离在二维空间上的公式,也就是欧氏距离的n的值为2的情况. 二 ...

  4. 欧式距离、标准化欧式距离、马氏距离、余弦距离

    目录 欧氏距离 标准化欧氏距离 马氏距离 夹角余弦距离 汉明距离 曼哈顿(Manhattan)距离 1.欧式距离 欧式距离源自N维欧氏空间中两点x1,x2x1,x2间的距离公式: 2.标准化欧式距离 ...

  5. 简单粗暴理解与实现机器学习之K-近邻算法(三):距离度量、欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化距离、余弦距离、汉明距离、杰卡德距离、马氏距离

    K-近邻算法 文章目录 K-近邻算法 学习目标 1.3 距离度量 1 欧式距离**(Euclidean Distance):** 2 **曼哈顿距离(Manhattan Distance):** 3 ...

  6. Mahalanobis距离(马氏距离)

    Mahalanobis距离(马氏距离) Mahalanobis距离是多维空间中两点相似性的度量,它本身不是聚类或者分类算法. Mahalanobis距离与Euclidean距离(欧式距离)类似,不过还 ...

  7. 明可夫斯基距离和马氏距离

    在机器学习中,距离是一个非常形象并且常用的概念.在分类和聚类问题中,距离的作用尤为明显.除此之外,在回归问题,甚至自然语言处理问题上,距离也有其相应的应用. 除了距离之外,相似系数也是解决这一问题的方 ...

  8. ML:图像数据、字符串数据等计算相似度常用的十种方法(余弦相似性、皮尔逊、闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离、马氏距离、汉明距离、编辑距离、杰卡德相似系数、相对熵/KL散度、Helli

    ML:图像数据.字符串数据等计算相似度常用的十种方法(余弦相似性.皮尔逊.闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离.马氏距离.汉明距离.编辑距离.杰卡德相似系数.相对熵/KL散度.Helli ...

  9. 多元统计分析——欧式距离和马氏距离

    在一元的情形中,定义两个点和之间的距离: 两者作差的绝对值,我们称为欧式距离. 经过标准化的作差绝对值,我们称为统计距离,或者标准化过后的距离.其中,代表样本的标准差. 在多元的情形中,假设我们有两个 ...

最新文章

  1. php提交表单关闭弹出层,使用js实现关闭js弹出层的窗口
  2. Eclipse不编译解决方案
  3. java越权发送邮件_已登录用户 越权 访问action方法怎么解决?
  4. 20155235 2016-2017-2《Java程序设计》课程总结
  5. 36氪联合阿里云,共同研制中小企业发展「催化剂」
  6. Linux: xclip,pbcopy,xsel用法 terminal 复制粘帖 (mac , ubuntu)
  7. Linux namespace - Docker 背后的故事
  8. 你羡慕了吗?10万个数字人民币红包派发,每个200元
  9. 记一次反制追踪溯本求源
  10. MyBatis整合Spring的实现(11)
  11. 关于解决error A2004: symbol type conflict错误
  12. 关键字 : this /self / parent
  13. kafka报错 WARN Session 0x0 for server null, unexpected error, closing socket connection
  14. apt user manul
  15. as常用固定搭配_四年级英语单词详解:as的固定搭配.doc
  16. 目标跟踪质心跟踪算法
  17. JS onblur 和 onfocus 造成死循环
  18. C/C++程序员是什么让你有如此优势?音视频开发该怎么学?
  19. 网络--VLAN知识详解
  20. springBoot 拦截器与过滤器

热门文章

  1. 尋找《案件取证操作教程EnCase》.ppt。
  2. Hough Transform Tutorial
  3. oracle 移动加权平均,移动加权平均物料类别和成本工作流设置说明
  4. jsp试卷分析管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  5. APC杂谈之PID Watch
  6. 计算机软件转让的知识产权归属,买卖合同中知识产权的归属
  7. 向量空间搜索引擎理论
  8. Java 8 七大新特性实践
  9. 甲骨文的Hyperion获得更好的企业绩效管理,财务规划及业务INTELL
  10. 技术分享-车辆监控模拟-追踪定位