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

本文深入浅出地介绍了马氏距离的概念及其与欧式距离的区别,并通过实例展示了如何利用马氏距离进行多变量异常检测。

看了很多关于马氏距离(Mahalanobis Distance)的介绍,但是总感觉有一些地方不太清晰,所以结合数学公式、机器学习中的应用案例,从头梳理一下。

马氏距离实际上是欧氏距离在多变量下的“加强版”,用于测量点(向量)与分布之间的距离。

在具体介绍马氏距离之前,首先需要了解下协方差的概念欧式距离的概念

什么情况下适用马氏距离?

当需要度量点(向量)与多变量分布之间的距离时,如果直接采用欧式距离,衡量的是两点之间的直接距离(点与分布之间的欧式距离,指的是向量x与变量空间中心的距离),而没有考虑数据的分布特性。

而采用马氏距离,在计算中对协方差进行归一化,则可以规避欧式距离对于数据特征方差不同的风险,从而使所谓的“距离”更加符合数据分布特征以及实际意义。1

什么是多变量分布(Multivariate Distributions)呢?
我们知道,当一个分布中随机变量的个数超过两个的时候,我们称之为多变量分布。与单个随机变量相比,多变量分布在实际应用中应用更广。
以二维随机变量为例:若对Ω中的每一个样本点ω都有一对有序实数(X(ω),Y(ω))与其对应,则称(X,Y)为二维随机变量或二维随机向量,称(X,Y)的取值范围为它的值域,记为Ω(X,Y)。
设(X,Y)为二维随机变量,对任意的(x,y)∈R2,称F(x,y)=P(X≤x,Y≤y)为随机变量(X,Y)的分布函数2

下面举一个具体例子,说明欧式距离在多变量距离度量方面的局限性。

当我们想要对多变量数据使用欧式距离,可能会遇到一个常见的问题:如果多变量(比如数据集中的列)之间相互关联(这在实际数据集中通常是这种情况),则点与点中心(分布)之间的欧几里得距离会具有误导性,无法真实反映一个点与分布之间的实际距离。3

如下图所示,这是是两个变量的简单散点图。左图是两个变量之间不相关,Point 1和Point 2与分布中心的距离相等。右图是两个变量之间呈正相关。即随着一个变量(x轴)的值增加,另一变量(y轴)的值也增加。

在这里插入图片描述

从几何上说,Point 1和Point 2两个点与分布中心的距离相等(欧几里得距离)。但是,即两点到分布的欧几里得距离相等,但实际上只有Point 1(蓝色)更接近该分布。

这是因为,欧几里得距离仅是两点之间的距离,它不考虑数据集中的其余点的分布情况。因此,它不能用来真正判断一个点实际上与点的分布有多接近。所以我们需要的是更健壮的距离度量标准,该度量标准可以精确地表示一个点与分布之间的距离。

马氏距离(Mahalanobis Distance)

马氏距离实际上是欧氏距离在多变量下的“加强版”,用于测量点(向量)与分布之间的距离。

计算公式

向量 x \bold{x} x到一个均值为 μ \mu μ,协方差为 S S S的样本分布的马氏距离计算如下:
d m a h a l = ( x − μ ) S − 1 ( x − μ ) ′ d_{mahal} = \sqrt{(\bold{x}-\bold{\mu})\bold{S^{-1}}(\bold{x}-\bold{\mu})'} dmahal=(xμ)S1(xμ)

评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值