详解协方差与协方差矩阵计算
协方差的定义
对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。
记住,X、Y是一个列向量,它表示了每种情况下每个样本可能出现的数。比如给定
则X表示x轴可能出现的数,Y表示y轴可能出现的。注意这里是关键,给定了4个样本,每个样本都是二维的,所以只可能有X和Y两种维度。所以
用中文来描述,就是:
协方差(i,j)=(第i列的所有元素-第i列的均值)·(第j列的所有元素-第j列的均值)
注:这里(第i列的所有元素-第i列的均值)形成的行向量·(第j列的所有元素-第j列的均值)形成的行向量的转置,再将该点乘结果做平均(在这里,就是除以4)才得到协方差(i,j),但是,由于下面的例子中要求的协方差阵中各个协方差均需要取相同的平均4,因此该协方差求解中省去了求平均的过程,最后求的协方差阵与未求平均的协方差阵拥有相同的特征向量(特征根变为原来的1/4),所以不做平均也可以
这里只有X,Y两列,所以得到的协方差矩阵是2x2的矩阵,下面分别求出每一个元素:
所以,按照定义,给定的4个二维样本的协方差矩阵为:
(注:实际python求解该X,Y的协方差阵也是得到其各个元素的1/4),如下图所示
)
用matlab计算这个例子
z=[1,2;3,6;4,2;5,2]
cov(z)
ans =
2.9167 -0.3333
-0.3333 4.0000
可以看出,matlab计算协方差过程中还将元素统一缩小了3倍。所以,协方差的matlab计算公式为:
协方差(i,j)=(第i列所有元素-第i列均值)*(第j列所有元素-第j列均值)/(样本数-1)
下面在给出一个4维3样本的实例,注意4维样本与符号X,Y就没有关系了,X,Y表示两维的,4维就直接套用计算公式,不用X,Y那么具有迷惑性的表达了。
常见的4维样本的计算如下:
(3)与matlab计算验证
Z=[1 2 3 4;3 4 1 2;2 3 1 4]
cov(Z)
ans =
1.0000 1.0000 -1.0000 -1.0000
1.0000 1.0000 -1.0000 -1.0000
-1.0000 -1.0000 1.3333 0.6667
-1.0000 -1.0000 0.6667 1.3333
可知该计算方法是正确的。我们还可以看出,协方差矩阵都是方阵,它的维度与样本维度有关(相等)。参考2中还给出了计算协方差矩阵的源代码,非常简洁易懂,在此感谢一下!
参考:
[1] http://en.wikipedia.org/wiki/Covariance_matrix
[2] http://www.cnblogs.com/cvlabs/archive/2010/05/08/1730319.html
详解协方差与协方差矩阵计算相关推荐
- pca主成分分析用matlab实现,PCA (主成分分析)详解 (写给初学者) 结合matlab
一.简介 PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法,大家知道,我们在处理有关数字图像处理方面的问题时,比如经常用的图像的查询问题 ...
- PCA (主成分分析)详解 (写给初学者)
学习图像处理,无疑会涉及到降维的操作,而PCA是常用的降维算法,既然经常用到,所以需要抠明白才行啊~~ PCA(PrincipalComponents Analysis)即主成分分析,是图像处理中经常 ...
- 主成分分析(PCA)方法步骤以及代码详解
主成分分析(PCA)方法步骤以及代码详解 前言 上一节我们了解到在构建神经网络模型,除了掌握如何搭建神经网络架构,了解参数具体含义,规避风险等方法.第一步是要对采用数据集的详细了解,无需接触任何神经网 ...
- 主成分分析,PCA(Principle Component Analysis)详解 ,结合matlab
https://my.oschina.net/gujianhan/blog/225241 一.简介 PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用 ...
- PCA ( 主成分分析) 详解
原文地址:https://blog.csdn.net/lijihw_1022/article/details/46622667 一. 简介 PCA( Principal Components Anal ...
- 【机器学习基本理论】详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解
[机器学习基本理论]详解最大似然估计(MLE).最大后验概率估计(MAP),以及贝叶斯公式的理解 https://mp.weixin.qq.com/s/6H0gmMWvTExySMraroLVlQ 最 ...
- 图像质量损失函数SSIM Loss的原理详解和代码具体实现
本文转自微信公众号SIGAI 文章PDF见: http://www.tensorinfinity.com/paper_164.html http://www.360doc.com/content/19 ...
- sublime c 语言 编译环境搭建,详解sublime搭建C/C++编译环境
2. Vue语法--插值操作动态绑定属性 详解 目录 1. 设置vue模板 2. vue语法--插值操作 3. 动态绑定属性--v-bind 一. 设置vue模板 我们经常新建一个vue项目的时候, ...
- 【人脸识别】人脸验证算法Joint Bayesian详解及实现(Python版)
人脸验证算法Joint Bayesian详解及实现(Python版) Tags: JointBayesian DeepLearning Python 本博客仅为作者记录笔记之用,不免有很多细节不对之处 ...
- [Python从零到壹] 十一.数据分析之Numpy、Pandas、Matplotlib和Sklearn入门知识万字详解(1)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
最新文章
- 青少年编程竞赛交流群周报(第039周)
- javascript初学
- 【转】测试思考——测试人员需要具备哪些素质?
- mysql 计算gps坐标距离_mysql、sqlserver和php计算GPS经纬度坐标距离
- [BZOJ] 1620: [Usaco2008 Nov]Time Management 时间管理
- 第三十三讲:tapestry表单组件详解之Label
- grub4dos中的不容易理解的问题
- Gradle入门:创建二进制分发
- 原创 | 我说我了解集合类,面试官竟然问我为啥HashMap的负载因子不设置成1!?...
- qcustomplot 游标吸附_QCustomplot使用分享(九) 绘制图表-多功能游标
- 学生成绩管理系统c语言直方图,Excel表格的25招必学秘技 电子表格常用技巧大全...
- 圆柱体积怎么算立方公式_圆柱的立方计算公式
- 支付宝支付php开发demo下载地址,tp使用支付宝接口demo
- php 跨站脚本攻击漏洞,PHP跨站脚本攻击(XSS)漏洞修复思路(二)
- iOS开发 宏定义,Pch文件的引入以及Header文件和Pch一起的使用方法(不用一直引入相同的头文件了,让你的开发更加快捷)
- win10系统用chew-wga激活重启后蓝屏
- java简洁日历代码
- 哈夫曼树及哈夫曼编码(考试常考版)
- File文件的属性设置
- 接口可以继承接口吗?