参考博客:
协方差的意义
协方差矩阵的实例与意义
马氏距离的深入理解
马氏距离(推荐看一下原博)
度量学习的主流就是学习马氏距离。这里只先简单介绍一下马氏距离中的一些概念和意义。
1. 简单理解协方差的物理意义
2. 协方差矩阵中的元素对分布的影响
3. 对马氏距离的理解
(ps:直观上快速理解马氏距离的前因后果直接跳至第3部分的Q3即可)
1. 简单理解协方差的物理意义
在概率论中,两个随机变量 X 与 Y 之间相互关系,大致有下列3种情况:
当 X, Y 的联合分布像上图那样时,我们可以看出,大致上有: X 越大 Y 也越大, X 越小 Y 也越小,这种情况,我们称为“正相关”。
当X, Y 的联合分布像上图那样时,我们可以看出,大致上有:X 越大Y 反而越小,X 越小 Y 反而越大,这种情况,我们称为“负相关”。
当X, Y 的联合分布像上图那样时,我们可以看出:既不是X 越大Y 也越大,也不是 X 越大 Y 反而越小,这种情况我们称为“不相关”。
怎样将这3种相关情况,用一个简单的数字表达出来呢?
在图中的区域(1)中,有 X>EX ,Y-EY>0 ,所以(X-EX)(Y-EY)>0;
在图中的区域(2)中,有 X
在图中的区域(3)中,有 X
在图中的区域(4)中,有 X>EX ,Y-EY<0 ,所以(X-EX)(Y-EY)<0。
重点来了!!!
当X 与Y 正相关时,它们的分布大部分在区域(1)和(3)中,小部分在区域(2)和(4)中,所以平均来说,有E(X-EX)(Y-EY)>0 。
当 X与 Y负相关时,它们的分布大部分在区域(2)和(4)中,小部分在区域(1)和(3)中,所以平均来说,有(X-EX)(Y-EY)<0。
当 X与 Y不相关时,它们在区域(1)和(3)中的分布,与在区域(2)和(4)中的分布几乎一样多,所以平均来说,有(X-EX)(Y-EY)=0。
所以,我们可以定义一个表示X, Y 相互关系的数字特征,也就是协方差
cov(X, Y) = E(X-EX)(Y-EY)。
当 cov(X, Y)>0时,表明X与Y 正相关;
当 cov(X, Y)<0时,表明X与Y负相关;
当 cov(X, Y)=0时,表明X与Y不相关。
这就是协方差的意义。
2. 协方差矩阵中的元素对分布的影响
这里共有五种情况,均为二维的高斯分布(正态分布),每个例子中有三个分布,分别给出了均值和协方差矩阵。均值代表正态分布的中心点,方差代表其分布的形状:
(1)三个协方差矩阵相同,都为对角阵,对角线元素相同
(2)三个协方差矩阵相同,都为对角阵,对角线元素不同
(3)三个协方差矩阵相同,不是对角阵,对角线元素不同
(4)三个协方差矩阵不同,都是对角阵,对角线元素相同
(5)三个协方差矩阵不同,不是对角阵,对角线元素不同
总结
均值为分布的中心点位置。
对角线元素决定了分布图形是圆还是扁。
非对角线元素决定了分布图形的轴向(扁的方向)。
3. 对马氏距离的理解
(1)定义:
马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。 对于一个均值为
,其马氏距离为
马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量X与Y的差异程度:
如果协方差矩阵为单位矩阵,马氏距离就简化为欧式距离;如果协方差矩阵为对角阵,其也可称为正规化的马氏距离。
其中σi是xi的标准差。
(2)对马氏距离的疑问
Q1:为什么要使变量去掉单位而使尺度无关?
因为测量维度之间的数量级不同,导致计算距离得出的误差过大不具有实际意义(例如身高与体重两个维度计算距离没有意义),所以需要进行归一化处理。
Q2:为什么马氏距离是与尺度无关的?
根据上面1所描述,当计算两点的相似度(也可以说是距离的时候),第一步是首先标准化,化成与尺度无关的量,再计算它的距离。但是如果是单纯使每个变量先标准化,然后再计算距离,可能会出现某种错误,原因是可能在有些多维空间中,某个两个维之间可能是线性相关的,如下图所示:
黄色部分为样品点,可以知道x1与x2是线性相关的,根据正态分布,对于中心点u,与A与B的标准距离应该是相同的,而马氏距离能做到这一点,但欧氏距离做不到,如下图所示:
由上图看到,如果使用欧氏距离,A点与B点距离中心点相同,但是又可以看出,A点处于样品集的边缘了,再外出一点就成异常点了。因此我们使用欧氏距离计算的时候,不能有效地区分出异常数据,看不出两变量之间的相似性与差异性,而上图中,A与B对于全体样品来说,差异性是够大的了。
为了解决这个问题,我们可以通过旋转坐标轴的方法,如下图所示:
可以看到y1与y2是线性无关的,因此我们可以通过对线性无关的分量进行标准化后,再求得距离是合理的。其实通过旋转坐标轴的方式,相当于对x进行相应的线性变换:Y = PX,使Y里面的各分变量变成线性无关的。设 ∑ 是随机向量 X = [x1, x2, ..., xp]的协方差矩阵,它有特征值-特征向量对(λ1,e1), (λ2,e2),.....(λp,ep),其中λ1>=λ2>=....>=λp,则第i主成分由
因此得到的新的变量Y里面的各分量是线性无关的,此时对于离中心点距离为某常数C形成的曲面是超椭球面。而yi的方差为λi,因而需要再把yi标准化,使之变成yi/λi,形成新的yi,这样生成的yi之间变成了与尺度无关的变量了,公式如下:
其中P是以特征向量为行向量的矩阵,根据正定距阵,特征向量互相正交。
现在来验证Y的协方差:
所以,对于旋转压缩后的Y的各分量之间线无关,而且已经标准化,与尺度无关,此时以Y分量为坐标轴形成的空间中,离中心距离为常数C的面为正圆球面。因而可以直接使用欧氏距离描述两点之间的相似度,也就是距离,因此有:
因此,当原坐标经过适当的变换之后,可以求出两点与尺度无关的距离,这也是使用马氏距离的原因。
Q3:这里我们来讨论两个直观意义上的问题 --- (1)协方差矩阵的逆在这里有什么作用,为什么要用逆?(2)马氏距离为什么要使变量间线性无关,这一步有什么意义?
这两个问题困扰了我两天了,终于有知乎大佬:马氏距离(Mahalanobis Distance)解释清楚了。大部分同学都是直接把公式一贴,解释公式了,让人很头大...(小声bb)
问题(1):通俗的解释是用逆矩阵的原因是相当于除去scale对距离的影响,想想一维的情况就应该能理解了~比如说同样距离都是3,但是对于方差大的数据,这个距离就算小了,所以要用距离再除以方差,高维情况就是协方差阵的逆了,理论上的话请看下面。
问题(2):虽然在Q2中简单讨论了一下这个问题,但是对于大部分同学来说(比如本菜)还是比较抽象,引用上面大佬的例子来解释一下。
我们都清楚一点,就是不同单位的特征之间不能简单比较(比如身高和体重)。我们能想到最直接的办法就是归一化。但是仅仅归一化是不行的,还会存在其他问题,什么问题呢?
那就是样本分布也会影响分类。
举个一维的例子:现在有两个类别,统一单位,第一个类别均值为0,方差为0.1,第二个类别均值为5,方差为5。那么一个值为2的点属于第一类的概率大还是第二类的概率大?距离上说应该是第一类,但是直觉上显然是第二类,因为第一类不太可能到达2这个位置。
所以,在一个方差较小的维度下很小的差别就有可能成为离群点。就像下图一样,A与B相对于原点的距离是相同的。但是由于样本总体沿着横轴分布,所以B点更有可能是这个样本中的点,而A则更有可能是离群点。
还有一个问题——如果维度间不独立同分布(即存在相关性),样本点一定与欧氏距离近的样本点同类的概率更大吗?
可以看到样本基本服从f(x) = x的线性分布,A与B相对于原点的距离依旧相等,显然A更像是一个离群点
即使数据已经经过了标准化,也不会改变AB与原点间距离大小的相互关系。所以要本质上解决这个问题,就要针对主成分分析中的主成分
来进行标准化。
可能有同学对上面这句话表示难以理解,本菜简单解释一下。
假设这里图片中数据具有强烈的正相关,可以理解为数据的两个维度下均值近似相等,μ1=μ2=0;方差也近似相等,σ1=σ2=σ。所以我们可以看到,对A、B两个点进行归一化的公式为
显然这里的μ和σ都是相同的,所以标准化只相当于对A、B点与数据中心距离进行了一个等比例缩放,并不影响它们之间大小的相互关系~
由此可见,仅仅靠标准化的欧氏距离还是存在很大问题的,数据相关性对判定结果的影响还是很大的。
上面搞懂了,马氏距离就好理解了,只需要将变量按照主成分进行旋转,让维度间相互独立,然后进行标准化,让维度同分布就OK了。
好了,这里我们只讨论直观上面对马氏距离所产生的一些问题的理解,说到这里就差不多了,更多的公式推导本文中也有,大家也可以看引用的原博客。之后可能会更新一下对主成分分析的理解哦~