协方差&协方差矩阵【matlab实例】
来源:互联网 发布:软件维护招标评分标准 编辑:程序博客网 时间:2024/04/19 10:55
协方差矩阵
协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算
这个定义还是很容易理解的,我们可以举一个三维的例子,假设数据集有三个维度,则协方差矩阵为:
必须要明确一点,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数:
首先,随机生成一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。
>> mySample=fix(rand(10,3)*50)mySample = 40 7 32 45 48 1 6 47 42 45 24 46 31 40 33 4 7 37 13 21 37 27 45 19 47 39 32 48 47 8
根据公式,计算协方差需要计算均值,前面特别强调了,协方差矩阵是计算不同维度之间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列是一个维度,因此我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:
>> dim1=mySample(:,1)dim1 = 40 45 6 45 31 4 13 27 47 48>> dim2=mySample(:,2)dim2 = 7 48 47 24 40 7 21 45 39 47>> dim3=mySample(:,3)dim3 = 32 1 42 46 33 37 37 19 32 8
计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:
>> cov12=sum((dim1-mean(dim1)).*(dim2-mean(dim2)))/(size(mySample,1)-1)cov12 = 78>> cov13=sum((dim1-mean(dim1)).*(dim3-mean(dim3)))/(size(mySample,1)-1)cov13 = -120.2444>> cov13=sum((dim1-mean(dim1)).*(dim3-mean(dim3)))/(size(mySample,1)-1)cov13 = -120.2444>> cov13=sum((dim1-mean(dim1)).*(dim3-mean(dim3)))/(size(mySample,1)-1)cov13 = -120.2444>> cov23=sum((dim2-mean(dim2)).*(dim3-mean(dim3)))/(size(mySample,1)-1)cov23 = -126.9444
协方差矩阵的对角线上的元素就是各个维度的方差,下面我们依次计算这些方差:
>> var1=std(dim1)^2var1 = 301.1556>> var2=std(dim2)^2var2 = 268.9444>> var3=std(dim3)^2var3 = 216.0111
这样,我们就得到了计算协方差矩阵所需要的所有数据,可以调用Matlab的cov函数直接得到协方差矩阵:
>> cov(mySample)ans = 301.1556 78.0000 -120.2444 78.0000 268.9444 -126.9444 -120.2444 -126.9444 216.0111
计算的结果,和之前的数据填入矩阵后的结果完全相同。
0 0
- 协方差&协方差矩阵【matlab实例】
- 协方差矩阵的matlab计算
- 协方差矩阵及matlab实现
- 方差,协方差,协方差矩阵
- 协方差,协方差矩阵
- 协方差 协方差矩阵
- 协方差与协方差矩阵
- 协方差与协方差矩阵
- 协方差与协方差矩阵
- 协方差与协方差矩阵
- 协方差矩阵
- 协方差矩阵
- 协方差矩阵
- 协方差矩阵
- 协方差矩阵
- 协方差矩阵
- 协方差矩阵
- 协方差矩阵
- 第九章 接口(下)
- linux下查看cpu、内存和硬盘大小
- 百度地图能定位但是无法显示出来图像
- java中Queue队列的介绍和使用(1)之LinkedList
- 运煤问题
- 协方差&协方差矩阵【matlab实例】
- HDU - 1495 非常可乐(BFS)
- 集成 SVN 插件到 Eclipse 全过程
- iOS 通过URL获取图片,并保存到本地
- 测试2
- 什么是Boot Loader
- 网络流+打印路径 Codeforces510E Fox And Dinner
- 常用的第三方框架和学习途径
- Chrome 中的 JavaScript 断点设置和调试技巧