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

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

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

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

一、协方差矩阵的基础

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

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

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

现实应用中,上式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说明:

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

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

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

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,即为样本分布的短轴方向。

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

V =

0     1

1     0

D =

5     0

0     5

说明:

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

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

协方差矩阵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

综合上述,可知:

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

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

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

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

三、协方差矩阵的应用

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

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

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

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

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

  1. 机器学习中的数学(3)——协方差矩阵和散布(散度)矩阵

    1.引言 在学习机器学习算法和阅读相关论文的时候,将经常会看到协方差矩阵和散布矩阵的身影,这说明它们在机器学习中具有很重要的作用,究竟有什么样的作用,下面我们就做简要的介绍和分析. 2.统计学上的基本 ...

  2. 线性判别分析(Linear Discriminant Analysis, LDA)(含类内散度矩阵 类间散度矩阵 全局散度矩阵推导

    LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是 ...

  3. 协方差矩阵和散布矩阵(散度矩阵)的意义

    协方差矩阵和散布矩阵的意义     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/68922981 在机器学习模式识别中, ...

  4. 【图像分割】基于迭代阙值选择、最大类间差、区域生长多种算法实现图像分割含Matlab源码

    1 简介 重点讨论了图像分割法中的阈值研究法,包括迭代阙值选择.最大类间差.区域生长进行了重点分析,用Matlab进行实现并给出了实验结果. 2 部分代码 function varargout = I ...

  5. 数字图像处理实验(六)|图像分割{阈值分割、直方图法、OTUS最大类间方差法(edge、im2dw、imfilter、imresize)、迭代阈值法、点检测}(附matlab实验代码和截图)

    文章目录 一.实验目的 二.实验原理 (一) 阈值分割 1. 直方图法 2.OTSU法(最大类间方差法)确定阈值 3. 迭代阈值法 4. 点检测 (二)边缘检测 三.实验内容 (一)阈值分割 1. 直 ...

  6. 基于OTSU最大类间方差法的ROI分割、提取图像中的形状特征--面积、周长、离心率、zernike矩

    分享一下最近学习的图像分类方面知识,整体的思路如下(之前的汇报ppt里截的) 把这个过程拆分几个部分共同学习一下吧 1.Otsu法原理 最大类间方差法OTSU是一种自适应的全局阈值确定的方法,根据灰度 ...

  7. 图像处理_Ostu算法(大律法、最大类间方差法)

    一.算法简述 Otsu算法是一种用于二值化最佳阈值的选取方法.基本原理是根据阈值T将图像中的像素点分为C1和C2两类,不断的调整阈值T之后若此时两类之间存在最大的类间方差,那么此阈值即是最佳阈值. 二 ...

  8. 迁移学习领域自适应:具有类间差异的联合概率最大平均差异

    ©PaperWeekly 原创 · 作者|张玮玮 学校|东北大学硕士生 研究方向|情感识别 论文标题:Discriminative Joint Probability Maximum Mean Dis ...

  9. Otsu(大津法,最大类间方差法)

    虽然很早就看过这本绿皮书,但是当时是刚入门的小菜鸟,根本就不知道这就是大名鼎鼎的大津法,当时只是觉得Otsu好奇怪的英文名字. 现在就来重新看看这个所谓的大津法: nin_ini​表示灰度级为i的像素 ...

最新文章

  1. [How TO]-如何编写Linux kernel documentation
  2. setup.s 解读——Linux-0.11 剖析笔记(三)
  3. 商品微服务添加api接口
  4. CodeForces - 1220E Tourism(边双缩点+树形dp)
  5. mysql默认乐观锁悲观锁_MySQL中悲观锁和乐观锁到底是什么?-阿里云开发者社区...
  6. Java ObjectStreamField getName()方法与示例
  7. NSZombieEnabled使用
  8. 20. Cookie 和 Session
  9. android+qq底部界面,Android 高仿QQ 界面滑动效果
  10. JS动态加载JSON文件并读取数据
  11. 胡侃学习(理论)计算机-From 南大小百合
  12. 尾行4攻略女仆计算机密码,【尾行4攻略女仆不动】尾行2,攻略(共10篇)
  13. 我的世界java版execute指令_命令/execute
  14. 天眼查app协议逆向分析
  15. python分形曲线代码_Python:绘制L-System的分形图
  16. 数值计算笔记之非线性方程的求解(一)二分法
  17. kermit的安装、配置、使用等
  18. 无炫技:纯粹的Bert和Roberta
  19. SpringBoot全局配置文件介绍
  20. 侯捷C++->组合与继承

热门文章

  1. “螺蛳粉宇宙中心”柳州,看网红速食如何实现长红?
  2. 《Oracle系列》Docker安装Oracle,Navicate连接Oracle
  3. CAD制图初学入门常见问题秘笈,助你摆脱节后综合症!(上)
  4. 无头结点单链表的逆置_无头节点的链表.PPT
  5. esp8266学习报告
  6. 不固定列动态行转列SQL
  7. 中级会计职称考试可以带计算机么,中级会计师无纸化考试允许带计算器入场吗?...
  8. 网络安全相关基础知识
  9. 计算机按键模块,计算器键盘-TM1650/AIP650
  10. 20230410----重返学习-网易云音乐首页案例-audio音频标签