协方差、协方差矩阵、马氏距离与欧式距离的理解
协方差、协方差矩阵、马氏距离与欧式距离的理解
最近在应用中,总涉及到对马氏距离的使用,而马氏距离中最重要的是协方差矩阵的计算,这些概念困扰了我很久,在查阅资料学习了解后,终于有浅显理解,做了个笔记与大家分享,才疏学浅,若理解有误欢迎批评指正。
一、 方差、协方差、协方差矩阵的概念
在统计学中,方差是单个样本集中,每个样本值与全体样本值的平均数之差的平均值的平均数,反应的是一维数组的离散程度。这里的样本集也可以换成随机变量,随机变量如果是离散的则表示为样本集,如果是连续的则可表示成连续变量,所以方差也称为度量单个随机变量的离散程度的物理量,计算公式如下:
(离散变量/样本集)
var(X)= E[(X−E[X])2](连续变量)
在概率论和统计中,协方差是对两个随机变量联合分布线性相关程度的一种度量。两个随机变量越线性相关,协方差越大,完全线性无关,协方差为零。定义如下:
cov(X,Y)=E[(X−E[X])(Y−E[Y])]
当X,Y是同一个随机变量时,X与其自身的协方差就是X的方差,可以说方差是协方差的一个特例。
cov(X,X)=E[(X−E[X])(X−E[X])]
或
var(X)=cov(X,X)=E[(X−E[X])2]
由于随机变量的取值范围不同,两个协方差不具备可比性。如X,Y,Z分别是三个随机变量,想要比较X与Y的线性相关程度强,还是X与Z的线性相关程度强,通过cov(X,Y)与cov(X,Z)无法直接比较。定义相关系数η为:
相关系数可以理解成归一化的协方差,将协方差归一化到[-1,1]的区间范围内。这样两协方差直接可以直接比较大小了。
需要注意的是,在实际应用中,变量往往是一些样本组成的离散点集,那么此时样本集的协方差(离散变量的协方差)是样本集的一个统计量,计算公式如下:
cov(X,Y)=1/(m-1) ∑_(i=1)^m▒〖(X_i-X ̅)(Y_i-Y ̅)〗
其中m是表示样本数,X,Y是具有相同样本数的两个变量。协方差永远是计算的两个变量之间的协方差。
当变量数大于等于两个,任意两个变量之间的协方差组成的矩阵就是协方差矩阵,对于n维随机变量X=〖[X_1,X_2,⋯X_n]〗^T,其协方差矩阵为n×n维的矩阵Σ。
很显然,协方差矩阵是对称阵,对角线位置表示每个变量的方差。
同样的,以上表示形式是连续变量的协方差计算公式,如果变量是离散的即样本集的形式,则离散随机变量(样本集)X表示为n×m的矩阵,如下:
X=〖[X_1,X_2,⋯X_n]〗^T, X_i=[x_i1,x_i2,⋯x_im]
则协方差矩阵Σ ̂计算公式如下:
二、协方差、协方差矩阵的计算
在实际计算时,大多是针对样本集的协方差计算。
首先我们分清几个概念,样本、变量、维度、属性等。样本往往都需要多个属性来描述,每个样本都可以看成一个多维随机变量的样本点。也就是说一个变量和一个属性说的是一个概念。同一变量中所有样本表示同一属性,具有同一物理意义与单位。同一变量中所有样本表示同一属性,具有同一物理意义与单位。在计算协方差的时候,一定要分清哪个维度是样本、哪个维度是变量。协方差是计算变量之间的协方差,而非对样本计算,所以协方差矩阵的大小与变量数相同。
样本集:X=〖[X_1,X_2,⋯X_n]〗^T=[■(x_11&⋯&x_1m@⋮&⋱&⋮@x_n1&⋯&x_nm )]
每一行表示一个变量,每一列表示一个样本,n个变量,m个样本。
计算协方差的时候就按照上述公式计算即可,也就是变量减去样本均值与另外一个变量减去样本均值之积的均值。
三、马氏距离与欧式距离的概念
不管是马氏距离还是欧式距离,都是用来表征样本与样本之间的距离大小的统计表征量。请注意与协方差不同的是,此刻是样本与样本之间的计算。
欧式距离的定义公式如下:
马氏距离定义就复杂点了,它是一种有效的计算两个未知样本的相似度的方法。在计算马氏距离前,首先要对多维变量或样本集计算出协方差矩阵,然后就可以计算两个样本点的马氏距离,也可以计算样本与样本集的马氏距离,也可以计算一个样本集本身的马氏距离。详细看下面两张图:
后者图中第一个公式就是计算样本集本身的马氏距离,第二个公式就是计算两个样本之间的马氏距离,协方差矩阵前后的两个向量是一样的,只不过做了个转置。个人理解,如果想做样本到样本集的马氏距离,则可把y换成某个样本集的矩阵向量。
此刻,思考个问题,要计算的样本或样本集服不服从计算协方差矩阵的变量分别呢?或者说计算协方差矩阵的样本集包含要计算马氏距离的样本或样本集吗?
四、 对马氏距离的物理意义(转自bluesliuf)
马氏距离有很多优点: 马氏距离不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关;由标准化数据和中心化数据(即原始数据与均值之差)计算出的二点之间的马氏距离相同。马氏距离还可以排除变量之间的相关性的干扰。
下面我们来看一个例子:
如果我们以厘米为单位来测量人的身高,以克(g)为单位测量人的体重。每个人被表示为一个两维向量,如一个人身高173cm,体重50000g,表示为(173,50000),根据身高体重的信息来判断体型的相似程度。
我们已知小明(160,60000);小王(160,59000);小李(170,60000)。根据常识可以知道小明和小王体型相似。但是如果根据欧几里得距离来判断,小明和小王的距离要远远大于小明和小李之间的距离,即小明和小李体型相似。这是因为不同特征的度量标准之间存在差异而导致判断出错。
以克(g)为单位测量人的体重,数据分布比较分散,即方差大,而以厘米为单位来测量人的身高,数据分布就相对集中,方差小。马氏距离的目的就是把方差归一化,使得特征之间的关系更加符合实际情况。
协方差、协方差矩阵、马氏距离与欧式距离的理解相关推荐
- 马氏距离和欧式距离详解
一般在机器学习模型中会涉及到衡量两个样本间的距离,如聚类.KNN,K-means等,使用的距离为欧式距离.其实,除了欧氏距离之外,还有很多的距离计算标准,本文主要介绍欧氏距离和马氏距离. 欧氏距离 最 ...
- 什么是范数,及其对应的 “曼哈顿距离“、“欧式距离“、“闵氏距离“、“切比雪夫距离“
什么是范数,及其对应的 "曼哈顿距离"."欧式距离"."闵氏距离"."切比雪夫距离" 一.什么是范数 二.欧式距离(对应 ...
- matlab计算欧式距离代码,欧式距离计算公式
spark开启推测机制后数据源是kafka,出现重复消费因为 推测机制会在其他机器去启动同一个task,难免会有数据重复消费 自己维护offset提交. 如何用Excel计算欧式距离 计算上边所有的欧 ...
- 曼哈顿距离,欧式距离,明式距离,切比雪夫距离以及马氏距离
1.曼哈顿距离 曼哈顿距离又称Manhattan distance,还见到过更加形象的,叫出租车距离的.具体贴一张图,应该就能明白. 上图摘自维基百科,红蓝黄皆为曼哈顿距离,绿色为欧式距离. 2.欧式 ...
- 六大距离:欧式距离、街道距离、马氏距离等
文章目录 1 简 介 2 距离特征 2.1 Euclidean距离 2.2 Cosine距离 2.3 manhattan距离 2.4 chebyshev距离 2.5 minkowski距离 2.6 m ...
- 使用python计算马哈顿距离、切比雪夫距离、欧式距离、夹角余弦
欧式距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值代销中体现差异 余弦距离更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分类区分兴趣的相似度和差异 同时 ...
- 曼哈顿距离,欧式距离,明式距离,切比雪夫距离,汉明距离
根据我浅薄的知识,以及粗浅的语言,随意总结一下. 1.马氏距离(Manhattan distance),还见到过更加形象的,叫出租车距离的.具体贴一张图,应该就能明白. 上图摘自维基百科,红蓝黄皆为曼 ...
- 曼哈顿距离,欧式距离,明式距离,切比雪夫距离区别
根据我浅薄的知识,以及粗浅的语言,随意总结一下. 1.曼哈顿距离 曼哈顿距离又称Manhattan distance,还见到过更加形象的,叫出租车距离的.具体贴一张图,应该就能明白. 上图摘自维基百科 ...
- 曼哈顿距离,欧式距离,余弦距离
1.曼哈顿距离 曼哈顿距离,叫出租车距离的.具见上图黄线,应该就能明白. 计算距离最简单的方法是曼哈顿距离.假设,先考虑二维情况,只有两个乐队 x 和 y,用户A的评价为(x1,y1),用户B的评价为 ...
最新文章
- 蝙蝠为啥这么厉害?地球人整明白了没有?
- WINCE5 s3c2440_SD驱动知识补充
- 从一道面试题说去 2
- Qt 软键盘[模拟]之键盘触发事件
- 巅峰对话:畅想大数据时代的车联网与智能汽车
- 问题:android学习内容破碎,我个人关于如何学习android的一些个人经历
- HashSet、LinkedHashSet、TreeSet的内部实现简介
- 大一线性代数知识点总结
- Twitter OAuth1.0认证过程
- C# Transaction 事务
- 高速交警的救命忠告!常跑高速的一定要看!
- Chinese Whisper 人脸聚类算法实现
- 210413赛后总结
- 局部边缘保留滤波器LEP算法原理及matlab代码实现
- (筆記) 否定疑問句的回答 (Japanese)
- 拓扑学+计算机,拓扑学是什么
- 软件测试为什么要学python,资讯详情-用excel不好吗?为什么还要学python?-柠檬班-自动化测试-软件测试培训-自学官网...
- Oracle-SQL-group by-报错:不是单组分组函数
- Android ContextMenu
- 鲍鱼数据集处理/matlab