matlab类间散度矩阵,协方差矩阵和散布矩阵(散度矩阵)的意义

在机器学习模式识别相关算法中,经常需要求样本的协方差矩阵C和散布矩阵S。如在PCA主成分分析中,就需要计算样本的散度矩阵,而有的教材资料是计算协方差矩阵。实质上协方差矩阵和散度矩阵的意义就是一样的,散布矩阵(散度矩阵)前乘以系数1/(n-1)就可以得到协方差矩阵了。

在模式识别的教程中,散布矩阵也称为散度矩阵,有的也称为类内离散度矩阵或者类内离差阵,用一个等式关系可表示为:

关系:散度矩阵=类内离散度矩阵=类内离差阵=协方差矩阵×(n-1)

样本的协方差矩阵乘以n-1倍即为散布矩阵,n表示样本的个数,散布矩阵的大小由特征维数d决定,是一个为d×d的半正定矩阵。

一、协方差矩阵的基础

对于二维随机变量(X,Y)之间的相互关系的数字特征,我们用协方差来描述,记为Cov(X,Y):

0818b9ca8b590ca3270a3433284dd417.png

那么二维随机变量(X,Y)的协方差矩阵,为:

0818b9ca8b590ca3270a3433284dd417.png

对于3维随机变量(X, Y, Z)的协方差矩阵可表示为:

0818b9ca8b590ca3270a3433284dd417.png

现实应用中,上式n表示样本的个数,随机变量(X, Y,Z)可以看作样本的特征(属性);

需要特别说明的是:

(1)协方差矩阵是一个对称矩阵,且是半正定矩阵,主对角线是各个随机变量的方差(各个维度上的方差)。

(2)标准差和方差一般是用来描述一维数据的;对于多维情况,而协方差是用于描述任意两维数据之间的关系,一般用协方差矩阵来表示。因此协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。

(3)协方差计算过程可简述为:先求各个分量的均值E(Xi)和E(Xj),然后每个分量减去各自的均值得到两条向量,在进行内积运算,然后求内积后的总和,最后把总和除以n-1。

例子:设有8个样本数据,每个样本有2个特征:(1,2);(3 3);(3 5);(5 4);(5 6);(6 5);(8 7);(9 8),那么可以看作二维的随机变量(X,Y),即

X=[1 3 3 5 5 6 8 9]

Y=[2 3 5 4 6 5 7 8]

Matlab中可以使用cov(X, Y)函数计算样本的协方差矩阵,其中X,Y都是特征向量。当然若用X表示样本的矩阵(X中每一行表示一个样本,每列是一个特征),那么可直接使用cov(X)计算了。

clear all

clc

X=[1,2;3 3;3 5;5 4;5 6;6 5;8 7;9 8]%样本矩阵:8个样本,每个样本2个特征

covX= cov(X)%使用cov函数求协方差矩阵运行结果为:

covX =

7.1429    4.8571

4.8571    4.0000当然,可以按定义计算,Matlab代码如下:

clear all

clc

X=[1,2;3 3;3 5;5 4;5 6;6 5;8 7;9 8]%样本矩阵:8个样本,每个样本2个特征

covX= cov(X)%使用cov函数求协方差矩阵

%% 按定义求协方差矩阵

meanX=mean(X)          %样本均值

varX=var(X)            %样本方差

dimNum=8;              %s样本个数ize(X,1)=8

dim1=X(:,1);           %特征分量1

dim2=X(:,2);           %而在分量2

c11=sum( (dim1-mean(dim1)) .* (dim1-mean(dim1)) ) / ( dimNum-1 );

c21=sum( (dim2-mean(dim2)) .* (dim1-mean(dim1)) ) / ( dimNum-1 );

c12=sum( (dim1-mean(dim1)) .* (dim2-mean(dim2)) ) / ( dimNum-1 );

c22=sum( (dim2-mean(dim2)) .* (dim2-mean(dim2)) ) / ( dimNum-1 );

C33=[c11,c12;c21,c22]%协方差矩阵运行结果:

varX =

7.1429    4.0000

C33 =

7.1429    4.8571

4.8571    4.0000说明:

从中可以发现,样本的协方差矩阵的对角线即为样本的方差。

二、协方差矩阵的几何意义

为了更好理解协方差矩阵的几何意义,下面以二维正态分布图为例(假设样本服从二维正态分布):

0818b9ca8b590ca3270a3433284dd417.png

clear all;clc

mu=[0,0];         % 均值向量

C=[5 0;0 1]       %样本的协方差矩阵

[V,D] =eigs(C)    %求协方差矩阵的特征值D和特征向量V

%% 绘制二维正态分布图

[X,Y]=meshgrid(-10:0.3:10,-10:0.3:10);%在XOY面上,产生网格数据

p=mvnpdf([X(:) Y(:)],mu,C);%求取联合概率密度,相当于Z轴

p=reshape(p,size(X));%将Z值对应到相应的坐标上

figure

set(gcf,'Position',get(gcf,'Position').*[1 1 1.3 1])

subplot(2,3,[1 2 4 5])

surf(X,Y,p),axis tight,title('二维正态分布图')

subplot(2,3,3)

surf(X,Y,p),view(2),axis tight,title('在XOY面上的投影')

subplot(2,3,6)

surf(X,Y,p),view([0 0]),axis tight,title('在XOZ面上的投影');

协方差矩阵C的特征值D和特征向量V分别为:

V =

1     0

0     1

D =

5     0

0     1

说明:

1)均值[0,0]代表正态分布的中心点,方差代表其分布的形状。

2)协方差矩阵C的最大特征值D对应的特征向量V指向样本分布的主轴方向。例如,最大特征值D1=5对应的特征向量V1=[1 0]T即为样本分布的主轴方向(一般认为是数据的传播方向)。次大特征值D2=1对应的特征向量V2=[0 1]T,即为样本分布的短轴方向。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

协方差矩阵C的特征值D和特征向量V分别为:

V =

0     1

1     0

D =

5     0

0     5

说明:

1)由于协方差矩阵C具有两个相同的特征值D1=D2=5,因此样本在V1和V2特征向量方向的分布是等程度的,故样本分布是一样圆形。

2)特征值D1和D2的比值越大,数据分布形状就越扁;当比值等于1时,此时样本数据分布为圆形。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

协方差矩阵C的特征值D和特征向量V分别为:

V =

0.7071   -0.7071

0.7071    0.7071

D =

6     0

0     4

说明:

1)特征值的比值D1/D2=6/4=1.5>1,因此样本数据分布形状是扁形,数据传播方向(样本的主轴方向)为V1=[0.7071 0.7071]T

0818b9ca8b590ca3270a3433284dd417.png

综合上述,可知:

(1)样本均值决定样本分布中心点的位置。

(2)协方差矩阵决定样本分布的扁圆程度。

是扁还是圆,由协方差矩阵的特征值决定:当特征值D1和D2的比值为1时(D1/D2=1),则样本分布形状为圆形。当特征值的比值不为1时,样本分布为扁形;

偏向方向(数据传播方向)由特征向量决定。最大特征值对应的特征向量,总是指向数据最大方差的方向(椭圆形的主轴方向)。次大特征向量总是正交于最大特征向量(椭圆形的短轴方向)。

三、协方差矩阵的应用

协方差矩阵(散布矩阵)在模式识别中应用广泛,最典型的应用是PCA主成分分析了,PCA主要用于降维,其意义就是将样本数据从高维空间投影到低维空间中,并尽可能的在低维空间中表示原始数据。这就需要找到一组最合适的投影方向,使得样本数据往低维投影后,能尽可能表征原始的数据。此时就需要样本的协方差矩阵。PCA算法就是求出这堆样本数据的协方差矩阵的特征值和特征向量,而协方差矩阵的特征向量的方向就是PCA需要投影的方向。

关于PCA的原理和分析,请见鄙人的博客:

《PCA主成分分析原理分析和Matlab实现方法》:http://blog.csdn.NET/guyuealian/article/details/68487833

如果你觉得该帖子帮到你,还望贵人多多支持,鄙人会再接再厉,继续努力的~

0818b9ca8b590ca3270a3433284dd417.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

把树分成森林 matlab,20170106RF_Matlab 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,包括两个方面:数据的随 269万源代码下载- www.pudn.com...

文件名称: 20170106RF_Matlab下载 收藏√ [5 4 3 2 1 ]开发工具: matlab文件大小: 441 KB上传时间: 2017-01-06下载次数: 0提 供 者: yanxiu详细说明:随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,包括两个方面:数据的随…

php绘制频谱图,一步一步教你实现iOS音频频谱动画(二)

本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制。前言在上篇文章中我们已经拿到了频谱数据,也知道了数组每个元素表示的是振幅,那这些数组元素之间有什么关系呢?根据FFT的原…

php删除尾部字符,php如何删除字符串末尾字符

我们知道字符串删除字符的方式有好几种,今天就来介绍三种php删除字符串最后一个字符的函数,有需要的小伙伴可以参考一下。方法一:substr()函数substr()函数返回字符串的一部分。语法如下:substr(string string, int start, int [l…

PHP 蒙太奇马赛克拼图,AndreaMosaic制作一幅马赛克拼图

大家在网上应该都见过用很多幅图片拼成的马赛克图片,今天小编就为大家介绍AndreaMosaic制作一幅马赛克拼图方法,不会的朋友快快来学习吧!软件名称:AndreaMosaic(蒙太奇图片制作软件) V6.1.0.4 中文安装免费版软件大小:…

oracle字段类型设计,Oracle字段类型设计与实际业务不符引发的问题

在Oracle表的设计过程中,开发人员总是对字段的类型不以为然,下面来演示一个例子,按照应该设计为number的,结果设计成了varcha在Oracle表的设计过程中,开发人员总是对字段的类型不以为然,下面来演示一个例子…

linux下进程监控6,Linux进程监控技术—精通软件性能测试与LoadRunner最佳实战(6)...

8.2.5 Linux操作系统进程监控技术Linux在进程监控方面同样出色,不仅可以通过图形用户界面的管理工具,还可以用命令方式显示进程相关信息。像“Windows的任务管理器”一样,在RedHat 9中可以通过单击“系统工具”→“系统监视器”,…

linux 命令行 迅雷替代,Mac/Linux下迅雷替代方案

还记得我两年前写的《DIY了家用NAS》吗?现在又带来新的升级啦。当初的NAS最多能使用Transmission来进行BT下载,那时就在想,如果能下载普通的http资源就好了。再进一步,有什么方案可以通吃所有下载方式呢? 记得那个时候…

linux好用的编译器,推荐几款Linux下比Notepad++好的编辑器软件

Notepad这一段又出风头了,好好的做你软件多好,非得参杂入政治。前两天开源文本编辑器 Notepad 发布了 7.8.1 版本,然后在该版本中作者居然摸黑中国,具体的内容请大家自行百度。而且这已经不是 Notepad 第一次这么干了!…

linux boost教程,Linux上安装使用Boost入门指导

获得boostboost分布只需要头文件的库使用boost建立一个简单的程序准备使用boost二进制文件库把你的程序链接到boost库1.获得boost解压2.boost分布boost_1_46_1.........................boost根目录boost/.....................................所有boost头文件libs/..........…

vps如何linux内核4.19,Linux kernel 4.19 RC1 发布,一个相当大的版本

原标题:Linux kernel 4.19 RC1 发布,一个相当大的版本Linus Torvalds今天发布了第一个候选版本(RC),正式启动了即将推出的Linux 4.19内核系列的开发周期。自Linux 4.18内核系列推出以来已经过去两周了,因此下一个主要版本Linux ke…

arm linux 存储,linux arm的存储分布那些事

原标题:linux arm的存储分布那些事linux arm 内存分布总览上图是linux的arm的虚拟地址分布总览,我们按从低地址到高地址的顺序逐个描述,每项的描述包括如下的内容的组和:地址范围大小,虚拟转物理的接口函数&#xff0c…

linux恢复终端默认配置,以gnome-terminal为例,修改gnome3 的默认配置,

以gnome-terminal为例,修改gnome3 的默认配置,gnome连续几个版本的terminal默认配置文件都是同一个配置文件“b1dcc9dd-5262-4d8d-a863-c897e6d979b9”。这是因为gnome的developers编辑了这个配置文件并作为gnome-terminal的默认配置文件,用来…

com.sec.android.app.smartclipservice,EPR Aerospace News

The World Cup Ball And Its Astonishing Effects Can Be Easily Explained Through TheTheory Of Dynamic Interactions, Which Also Applies To The Flight Of The Boomerang.The official World Cup ball, the so called “Jabulani”, which has been object of a lot of c…

html表格内文字置顶,css如何让table里的字居中?

css如何让table里的字居中?下面本篇文章就来给大家介绍一下使用CSS让table里字居中的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。在CSS中,可以通过设置text-align: center;和vertical-align:middle;来…

html5离开网页自动暂停,通过html5代码在网页中实现播放和暂停音乐mp3,mav等文

介绍通过html5代码在网页中实现播放和暂停音乐mp3,mav等文件的具体操作方法。这样对于用户来说,在线可播放功能能大大提高站内效率也可带来一定的流量。希望对有需要的朋友有所帮助。这里我们需要先了解下,在html5中的两个个重要标签。阿里西西web开发网…

android digest 认证,探究 Android 签名机制和原理

背景最近在调研一个测试工具的使用,在使用中发现被测试工具处理过的apk文件经安装后打开就会崩溃,分析崩溃日志后原因是签名不一致导致的。说到Android中的签名,可能大家都知道签名的目的就是为了保护apk文件的安全,如果apk被恶意…

pm2 start 带参数_3款有海景天窗的国产SUV,最适合带女朋友看星星,首付3万拿下...

夏天就这么缓缓地来了,在某一个周末的晚上,约上心爱的女朋友,开上车子,一路上驰骋在无人的大桥上,放上音乐,开到目的地,打开天窗,看看星星,从诗词歌赋谈到人生哲学&#…

html仿京东快速购物导航,jQuery仿京东楼层滑动侧边栏高亮(原创)

插件描述:jQuery模仿京东侧边栏点击滑动到该楼层,同时侧边栏随着页面滚动对应导航高亮。更新时间:2017/9/30 下午2:48:37更新说明:1,添加了查看评论按钮来改变对应区的高度2,将floorList和navList作为匿名函…

华为云大数据存储的冗余方式是三副本_华为TaurusDB技术解读(转载)

近日,华为云自研关系型数据库 Taurus 公开亮相。作为华为云自研的最新一代云原生分布式数据库,Taurus 完全兼容 MySQL 8.0,采用计算与存储分离、日志即数据的架构设计,支持 1 写 15 读,性能达到原生 MySQL 的 7 倍。性…

unity 是厘米还是米_乔丹19岁才1.75米,2年增高近20公分,这个长高方法你能坚持多久...

相信现在有很多的人希望自己在长大之后能去NBA打篮球,但是因为种种原因,最后还是放弃了这个想法, 很多人是因为自己的身体素质达不到要求,比如说天赋上没有达到一个篮球运动员的身高,还有的是因为自己家庭的原因最后放…