详解马氏距离中的协方差矩阵计算(超详细)

详解马氏距离中的协方差矩阵计算(超详细)一、概率统计基本知识1.样本均值样本均值(Mean)是在总体中的样本数据的平均值。2.样本方差方差(Variance)是度量一组数据的离散(波动)程度。方差是各个样本与样本均值的差的平方和的均值,分母除以n-1是为了满足无偏估计:3.样本标准差4.协方差协方差(Covariance)是度量两个变量的变动的同步程度,也就是度量两个变量线性相关性程度。若协方差大于0,表示一个变量增大时另一个变量也会增大,即两个变量呈正相关;若协方差小于0,表示一个变量增大时另一个变量会减小,即两个变量呈负相关

大家好,又见面了,我是你们的朋友全栈君。

一、概率统计基本知识

1.样本均值
样本均值(Mean)是在总体中的样本数据的平均值。
在这里插入图片描述
2.样本方差
方差(Variance)是度量一组数据的离散(波动)程度。方差是各个样本与样本均值的差的平方和的均值,分母除以n-1是为了满足无偏估计:
在这里插入图片描述
3.样本标准差
在这里插入图片描述4.协方差
协方差(Covariance)是度量两个变量的变动的同步程度,也就是度量两个变量线性相关性程度。若协方差大于0,表示一个变量增大时另一个变量也会增大,即两个变量呈正相关;若协方差小于0,表示一个变量增大时另一个变量会减小,即两个变量呈负相关;若协方差为0,则统计学上认为二者线性无关。注意两个无关的变量并非完全独立,只是没有线性相关性而已。 协方差的计算公式如下:
在这里插入图片描述
5.协方差矩阵
在统计学与概率论中,协方差矩阵的每个元素是各个向量元素之间的协方差,是从标量随机变量到高维度随机向量的自然推广
协方差矩阵(Covariance matrix)由随机变量集合中两两随机变量的协方差组成。矩阵的第i行第j列的元素是随机变量集合中第i和第j个随机变量的协方差。假设我们有三个n维随机变量X,Y,Z(一般而言,在实际应用中这里的随机变量就是数据的不同维度。切记:协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的协方差。):
在这里插入图片描述
则n维随机变量X,Y,Z的协方差矩阵为:
在这里插入图片描述
其中每个元素值的计算都可以利用上面计算协方差的公式进行。

二、马氏距离(Mahalanobis Distance)

1.定义
马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是,它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的),并且是尺度无关的(scale-invariant),即独立于测量尺度。对于一个均值为μ,协方差矩阵为Σ的多变量行向量x(设x有m个分量,且每个分量都是n维列向量),其马氏距离矩阵为:
在这里插入图片描述
其中
在这里插入图片描述
可以发现,(x-μ)T是m×n矩阵,Σ是n×n矩阵,(x-μ)是n×m矩阵,所以DM(x)是m×m矩阵,衡量的是向量x不同分量两两之间的马氏距离。

2.马哈拉诺比斯距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ 的样本点x与y的差异程度:
在这里插入图片描述
假设x,y都是3维向量,那么由于(x-y)T是1×3矩阵,Σ的逆是3×3矩阵(因为这里我们的数据点有3个维度的属性),(x-y)是3×1矩阵,所以d(x,y)是一个1×1的数值,衡量的是x与y之间的马氏距离。

3.两个样本点的马氏距离计算示例:
在这里插入图片描述

Matlab计算协方差矩阵验算(矩阵a的列代表属性,行代表样本点):

在这里插入图片描述
得到协方差矩阵后,我们就可以计算出v和x之间的马氏距离了:

在这里插入图片描述

Matlab验算:

在这里插入图片描述

切记:协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的协方差!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153968.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DVWA之反射型XSS代码审计

    DVWA之反射型XSS代码审计目录lowmediumhighimpossible从整个cms的角度去分析这个漏洞low前端代码如下。定义了一个表达以get的方式发送请求形式为?name=。然后包含了一个$html的变量源码如下。array_key_exists()函数检查某个数组中是否存在指定的键名,如果键名存在则返回true,如果键名不存在则返回false。$_GET为超全局变量。直接将输入的name值赋值给变量$html然后前端再引用这个变量,所以触发xss<?php.

    2022年6月2日
    28
  • JAVA写文本编辑器(一)

          作业题,花了整整两天终于搞出来了,今天给大家整理一下思路。      这里用swing,awt写的。        我们大概要做成一个电脑的记事本那样的一个编辑器。可以调整字体,字号,颜色。能够打开、保存文件,新建窗口,点击退出,还有一个关于介绍的窗口。整体看起来功能不是很多,只要一部分一部分的去完成就很好办了。      关键词:JAVA文本编辑器,      思路…

    2022年4月6日
    66
  • 4.pycharm添加第三方库[通俗易懂]

    4.pycharm添加第三方库[通俗易懂]网络爬虫的第一步就是根据URL,获取网页的HTML信息。在Python3中,可以使用urllib.request和requests进行网页爬取。(1)准备所需库我们需要准备一款名为BeautifulSoup(网页解析)的开源库,用于对下载的网页进行解析,我们是用的是PyCharm编译环境所以可以直接下载该开源库。urllib库是python内置的,无需我们额外安装,只要安装了Python就可以使用这个库。requests库是第三方库,需要我们自己安装。第三方库安装步骤如下:选择File-&g

    2022年8月29日
    2
  • SpringBoot接收LocalDate类型数据

    SpringBoot接收LocalDate类型数据@ApiOperation(“按月份查询日记集”)@PostMapping(“selectAll”)publicServiceResult<Object>selectAll(@RequestParam@NotNull@DateTimeFormat(iso=DateTimeFormat.ISO.DATE)LocalDatelocalDate){List<MysqlDiary>list=mysqlDiaryService…

    2022年6月24日
    32
  • Layui弹出层关闭

    Layui弹出层关闭Layui弹窗关闭直接varindex=layer.open({…success:function(){layer.close(index);}})//获取当前窗口的namevarindex=parent.layer.getFrameIndex(window.name);//关闭窗口parent.layer.close(index);layer.closeAll();//疯狂模式,关闭所有层  layer..

    2022年6月5日
    45
  • webstorm 2021 激活码_最新在线免费激活

    (webstorm 2021 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月28日
    110

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号