马氏距离 Mahalanobis Distance

article/2025/8/30 23:08:29

马氏距离 Mahalanobis Distance

  • 1. 马氏距离定义
  • 2. 马氏距离实际意义
    • 2.1 欧氏距离近就一定相似?
    • 2.2 归一化后欧氏距离就一定相似?
    • 2.3 算上维度的方差就够了?
  • 3. 马氏距离的几何意义
  • 4. 马氏距离的推导
  • 5. 马氏距离限制

Reference:

  1. 马氏距离(Mahalanobis Distance)

马氏距离(Mahalanobis Distance)是度量学习中一种常用的距离指标,同欧氏距离、曼哈顿距离、汉明距离等一样被用作评定数据之间相似度的指标。可以应对高维度线性分布的数据中各维度间非独立同分布的问题。

1. 马氏距离定义

马氏距离是一种距离的度量,可以看作是欧氏距离的一种修正,修正了欧氏距离中各维度尺度不一致且相关的问题。

单个数据点的马氏距离:
D M ( x ) = ( x − μ ) T Σ − 1 ( x − μ ) D_M(x)=\sqrt{(x-\mu)^T\Sigma^{-1}(x-\mu)} DM(x)=(xμ)TΣ1(xμ)

数据点 x x x, y y y 之间的马氏距离:
D M ( x ) = ( x − y ) T Σ − 1 ( x − y ) D_M(x)=\sqrt{(x-y)^T\Sigma^{-1}(x-y)} DM(x)=(xy)TΣ1(xy)

其中 Σ \Sigma Σ多维随机变量的协方差矩阵 μ \mu μ样本均值,如果协方差矩阵是单位矩阵,也就是各维度独立同分布,马氏距离就变成了欧氏距离。

2. 马氏距离实际意义

马氏距离相比欧氏距离好在哪里?举个例子:

2.1 欧氏距离近就一定相似?

举个比较常用的例子:身高和体重,这两个变量拥有不同的 unit,也就是有不同的 scale。比如身高用毫米计算,而体重用千克计算,显然差 10mm 的身高和差 10kg 的体重是完全不同的。但在欧式距离中,这将会被看做相同的差距。

2.2 归一化后欧氏距离就一定相似?

当然我们可以先做归一化来消除维度间 scale 不同的问题,但是样本分布也会影响分类。

举个一维的例子:
现在有两个类别,unit 统一,第一个类别均值为0,方差为0.1;第二个类别均值为5,方差为5。那么一个值为2的点属于第一类的概率大还是第二类的概率大?

  • 从距离看,应该是第一类,但直觉上显然是第二类,因为第一类不太可能达到2这个位置。

所以,在一个方差较小的维度下很小的差别就有可能成为离群点。如下图, A A A B B B 相对于原点的距离是相同的。但是由于样本总体沿着横轴分布,所以B点更有可能是这个样本中的点,而A则更有可能是离群点:
在这里插入图片描述

2.3 算上维度的方差就够了?

还有一个问题-----如果维度间不独立同分布,样本点一定与欧氏距离近的样本点同类的概率更大吗?
在这里插入图片描述
可以看到样本服从 f ( x ) = x f(x)=x f(x)=x 的线性分布, A A A B B B 相对于原点的距离依旧相等,显然 A A A 更像是一个离群点。

即使数据已经经过了标准化,也不会改变 A B AB AB 与原点间距离大小的相互关系。所以要本质上解决这个问题,主要针对主成分分析中的主成分来进行标准化。

3. 马氏距离的几何意义

上面搞懂了后,马氏距离就好理解了,只需要将变量按照主成分进行旋转,让维度之间相互独立,然后进行标准化,让维度同分布就好了。

由主成分分析可知,由于主成分就是特征向量方向,每个方向的方差就是对应的特征值,所以只需要按照特征向量的方向旋转,然后缩放特征值倍就可以了,得到以下结果:
在这里插入图片描述这时候的欧氏距离就是马氏距离。

4. 马氏距离的推导

首先要对数据点进行旋转,旋转至主成分,维度间线性无关。
假设新的坐标为:
F = ( F 1 , F 2 , . . . , F m ) = U T X μ F = ( μ 1 , μ 2 , . . . , μ m ) ( F − μ F ) = U T ( X − μ x ) F = (F_1,F_2,...,F_m) = U^TX \\ \mu_{F} = (\mu_{1}, \mu_{2},...,\mu_{m}) \\ (F-\mu_F)=U^T(X-\mu_x) F=(F1,F2,...,Fm)=UTXμF=(μ1,μ2,...,μm)(FμF)=UT(Xμx)变换后维度间线性无关且每个维度自己的方差为特征值,所以满足:
( F − μ F ) ( F − μ F ) T = [ λ 1 λ 2 ⋯ λ 4 ] = U T ( X − μ x ) ( X − μ x ) T U = U T Σ X U \begin{aligned} (F-\mu_F)(F-\mu_F)^T&=\left[\begin{array}{llll} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \cdots & \\ & & & \lambda_4 \end{array}\right] \\ &= U^T(X-\mu_x)(X-\mu_x)^TU \\ &= U^T\Sigma_XU \end{aligned} (FμF)(FμF)T= λ1λ2λ4 =UT(Xμx)(Xμx)TU=UTΣXU马氏距离是旋转变换缩放后的欧氏距离,所以马氏距离的计算公式为:
D M = ( f 1 − μ F 1 λ 1 ) 2 + ( f 2 − μ F 2 λ 2 ) 2 + … + ( f m − μ F m λ m ) 2 = ( f 1 − μ F 1 , f 2 − μ F 2 , … , f M − μ F M ) [ 1 λ 1 1 λ 2 … 1 λ m ] ( f 1 − μ F 1 f 2 − μ F 2 … f m − μ F m ) = ( f − μ F ) T ( U T Σ X U ) − 1 ( f − μ F ) = ( x − μ X ) T U U T Σ X − 1 U U T ( x − μ X ) = ( x − μ X ) T Σ X − 1 ( x − μ X ) \begin{aligned} D_M & =\left(\frac{f_1-\mu_{F_1}}{\sqrt{\lambda_1}}\right)^2+\left(\frac{f_2-\mu_{F_2}}{\sqrt{\lambda_2}}\right)^2+\ldots+\left(\frac{f_m-\mu_{F_m}}{\sqrt{\lambda_m}}\right)^2 \\ & =\left(f_1-\mu_{F_1}, f_2-\mu_{F_2}, \ldots, f_M-\mu_{F_M}\right)\left[\begin{array}{cccc} \frac{1}{\lambda_1} & & & \\ & \frac{1}{\lambda_2} & & \\ & & \ldots & \\ & & & \frac{1}{\lambda_m} \end{array}\right]\left(\begin{array}{c} f_1-\mu_{F_1} \\ f_2-\mu_{F_2} \\ \ldots \\ f_m-\mu_{F_m} \end{array}\right) \\ & =\left(f-\mu_F\right)^T\left(U^T \Sigma_X U\right)^{-1}\left(f-\mu_F\right) \\ & =\left(x-\mu_X\right)^T U U^T \Sigma_X^{-1} U U^T\left(x-\mu_X\right) \\ & =\left(x-\mu_X\right)^T \Sigma_X^{-1}\left(x-\mu_X\right) \end{aligned} DM=(λ1 f1μF1)2+(λ2 f2μF2)2++(λm fmμFm)2=(f1μF1,f2μF2,,fMμFM) λ11λ21λm1 f1μF1f2μF2fmμFm =(fμF)T(UTΣXU)1(fμF)=(xμX)TUUTΣX1UUT(xμX)=(xμX)TΣX1(xμX)即为之前提到的公式。

5. 马氏距离限制

  • 协方差矩阵必须满秩
    里面有求逆矩阵的过程,不满秩不行,要求数据要有原维度个特征值,如果没有可以考虑先进行PCA,这种情况下PCA不会损失信息
  • 不能处理非线性流形(manifold)上的问题
    只对线性空间有效,如果要处理流形,只能在局部定义,可以用来建立KNN图

http://chatgpt.dhexx.cn/article/sas15O3r.shtml

相关文章

马氏距离概念

马氏距离 一、基本概念: 方差:方差是标准差的平方,而标准差的意义是数据集中各个点到均值点距离的平均值。反应的是数据的离散程度。 协方差:标准差与方差是描述一维数据的,当存在多维数据时,我们通常需要知…

马氏距离通俗理解

基础知识: 假设空间中两点x,y,定义: 欧几里得距离, Mahalanobis距离, 不难发现,如果去掉马氏距离中的协方差矩阵,就退化为欧氏距离。那么我们就需要探究这个多出来的因子究竟有什么含…

马氏距离Mahalanobis Distance实例

简介 如果按照欧氏距离去理解马氏距离,一定会迷惑一段时间。因为欧氏距离可以计算两个点之间的距离,而马氏距离是计算一个点距离一个聚类的距离。如果想通过马氏距离去计算某两个点之间的距离是行不通的。下面按照一般的套路介绍一下欧氏距离与马氏距离…

马氏距离详解

马氏距离详解 一、理性认知二、感性认知第一个例子第二个例子 三、实例认知四、公式推导推导过程 致谢 一、理性认知 马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未…

马氏距离(Mahalanobis Distance)

马氏距离(Mahalanobis Distance)是度量学习中一种常用的距离指标,同欧氏距离、曼哈顿距离、汉明距离等一样被用作评定数据之间的相似度指标。但却可以应对高维线性分布的数据中各维度间非独立同分布的问题。 什么是马氏距离 马氏距离(Mahalanobis Distance)是一种距离的度量,…

马氏距离详解(数学原理、适用场景、应用示例代码)

看了很多关于马氏距离(Mahalanobis Distance)的介绍,但是总感觉有一些地方不太清晰,所以结合数学公式、机器学习中的应用案例,从头梳理一下。 马氏距离实际上是欧氏距离在多变量下的“加强版”,用于测量点…

linux 配置swoole环境

linux 配置swoole环境 安装PHP wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --php_option 6 --phpcache_option 1 --reboot vim /usr/local/php/etc/php.ini 删除对exec函数…

ppp开启pap/chap认证

什么是pap? PAP 是 PPP 协议集中的一种链路控制协议,通过2次握手建立认证,对等结点持续重复发送 ID/ 密码(明文)给验证者。 什么是chap? CHAP通过三次握手验证被认证方的身份,在初始链路建立…

Ensp配置PPP CHAP认证

如图配置IP地址 启用 CHAP 认证&#xff0c;用户名/密码为&#xff1a;HuaWei/123456 确保RAR20-A和RAR20-B之间可以互通 按照如下步骤进行。 1&#xff09;配置IP地址&#xff0c;确保设备互通 <Huawei>system-view [Huawei]sysname RAR20-A [RAR20-A]in…

思科模拟器启用CHAP协议

chap使用密文格式发送chap认证信息&#xff0c;相比较pap的明文格式&#xff0c;更具有安全性。 添加s端口&#xff1a;先将路由器关闭&#xff0c;将HWIC-2T模块拖入卡槽&#xff0c;再将路由器开启 单向CHAP&#xff1a;R2为认证方 R1&#xff1a; hostname R1 …

H3C(27)——PAP与CHAP

1.PAP的单向认证 【R1】 <RouterA> system-view[RouterA] local-user userb class network [RouterA-luser-network-userb] password simple passb [RouterA-luser-network-userb] service-type ppp [RouterA-luser-network-userb] quit[RouterA] interface serial 1/0 …

ppp的chap认证报文原理以及细节

ppp的chap认证报文原理 chap认证&#xff1a; 1.验证方&#xff08;存有本地数据库的一方&#xff09;主动向被验证方发送一个挑战报文&#xff0c;里面包含报文id&#xff0c;随机数&#xff0c;本端用户名&#xff08;默认单向认证不带&#xff09;。 2.被验证方收到挑战请求…

Cisco(56)——PAP和CHAP

说明:R1,R3,R5,R7,R9的S1/1的地址为1.1.1.1/24,R2,R4,R6,R8,R10的S1/1的地址为1.1.1.2/24,实验步骤省略配置hostname和IP地址的过程! 一:PAP的单向认证,R1为认证方 R1(config)#username R2 password 0 123R1(config)#interface serial 1/1 R1(config-if)#encapsulation …

ppp协议(pap和chap验证模式)拓扑(eNSP)

一&#xff0e;基本配置 新建拓扑 ①添加路由&#xff1a;添加两个Axaioxia_2220路由到拓扑图上 ②改标签名&#xff1a;其标签名称默认为Axiaoxia_1与Axaioxia_2&#xff0c;双击“Axiaoxia_1与Axaioxia_2”手动改为自己需要的名, 我改为“xiaoxia_1与xiaoxia_2” ③添加…

PAP与CHAP认证

一、PPP介绍 PPP&#xff08;point-to-point protocol&#xff09;是一种点到点链路层协议&#xff0c;主要用于在全双工的同异步链路上进行点到点的数据传输。##在PPP中主要由三类协议簇组成 1、链路控制协议簇&#xff08;Link Control protocol&#xff09;&#xff1a;主要…

pap认证和chap认证实验

目录标题 第一步&#xff1a;在r5上配置环回和s3/0/0接口地址&#xff0c;及pap认证&#xff08;主认证&#xff09;第二步&#xff1a;在r1上配置接口&#xff0c;pap认证&#xff08;被认证方&#xff09;第三步&#xff1a;在r5上配置s3/0/1接口&#xff0c;chap认证&#x…

PPP原理 PAP认证 CHAP认证

目录 PPP的基本构架 PPP主要由三类协议族组成 PPP应用场景 PPP缺省配置 配置PAP认证 操作步骤 配置认证方 配置被认证方 配置CHAP认证 操作步骤 配置认证方 配置被认证方 认证方没有配置用户名 配置被认证方 PPP的基本构架 PPP协议处于TCP/IP协议栈的数据链路层&…

思科模拟器入门基础-PPP协议双向CHAP认证

PPP&#xff1a;点对点协议 是一种用来同步调制连接的数据链路层协议 具有身份验证功能(PAP、CHAP)、动态分配IP地址的能力、错误检测能力 CHAP&#xff1a;PPP协议认证的一种方式 CHAP使用密文传输 使用三次握手实现 比PAP安全性高 实验环境 Cisco Packet Tracer 6.02台PT路由…

PAP认证、CHAP认证

概述 实验目标 掌握PAP、chap认证方式的配置与验证方法 实验描述 路由器&#xff08;带串口&#xff09; 2 台V.35 线缆&#xff08;DTE/DCE&#xff09; 1 对 2技术分析 PPP 协议位于 OSI 七层模型的数据链路层&#xff0c;PPP 协议按照功能划分为两个子层&#xff1a;LCP…

CHAP认证

实验拓扑 Jan16 公司因业务发展&#xff0c;建立了分公司&#xff0c;租用了专门的线路用于总部与分公司的连联。为保障通信线路的数据安全&#xff0c;需在路由器上配置安全认证。项目拓扑如图所示。 1. 基础配置 2. 配置路由器接口 &#xff08;1&#xff09;R1的配置 [Hu…