引言

在模式识别中,经常碰到协方差矩阵这个概念,以前一直没搞懂,现在又碰到这个破玩意了,决定把他搞懂,下面就是做的笔记,与大家分享一下

均值:wKiom1QmtIOwkXTCAAAROok9TGU151.jpg

标准差:wKioL1QmtKqC5nkmAAAeWc5tHQ0929.jpg

方差:wKioL1QmtKuzKYGGAAAZ9xGQ38E204.jpg

均值描述的是样本集合的样本的平均值,即平均水平.

标准差给我们描述的则是样本集合的各个样本点到均值的平均距离,反映的是与平均值的偏离程度。反映了数据的稳定程度。

wKiom1QmtIOh8RSnAADYrAEp4v0482.jpg

之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的无偏估计

比如:一批灯泡,要考察期寿命,我们需要考察两个量,均值和方差,均值只能表示平均寿命,但还不能反映这批灯泡的稳定性,稳定性需要用方差来衡量。

 

 

这里的x只是一维的情况,我们可以将x这一维想象成person(name,age,height)这个特征向量中的age这个特征,特别注意,x不是代表了person这个样本,如果代表的是一个person那么ageheight的平均值有什么意义呢?

为什么需要协方差?

均值和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集

多维情况下,处理需要E(X)D(X)外,还需要讨论各个维度之间的关系,协方差就是这样一种用来度量两个随机变量(特征)相关性的统计量(特征选取的时候我们需要选择相关性小的特征,如NB算法),方差是协方差的一种特殊情况,即当两个变量是相同的情况。期望值分别为E[x]E[Y]的两个实数随机变量xY之间的协方差定义为:


wKioL1QmtKvw9DcFAAArBhVE6Co051.jpg

wKiom1QmtIOCMD5wAAAn3v4-A_A351.jpg

协方差也只能处理二维问题,当维数多了,就需要采用协方差矩阵的形式:

协方差矩阵

定义:


wKioL1QmtbHhzoamAAAg3PMESYo491.jpg

举一个简单的三维的例子,假设数据集有

wKiom1QmtIXAouSoAAALm0cp6dE841.jpg三个维度,则协方差矩阵为

C=    cov(x,x),cov(x,y),cov(x,z)
         cov(y,x),cov(y,y),cov(y,z)

        cov(z,x),cov(z,y),cov(z,z)

可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

 

协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。

Matlab协方差示例

随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数
sample = fix(rand(10,3)*50)
结果:



wKioL1QmtK3iJpT2AABoPqNd_zk111.jpg

前面我们也特别强调了,协方差矩阵是计算不同维度(不同特征)间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

wKiom1QmtIbjUOt6AABBp53mD5k385.jpg

  1. 1.    计算三者的两两之间的协方差:
    dim1
    dim2dim1dim3dim2dim3的协方差:
    sum((dim1-mean(dim1)) .* (dim2-mean(dim2)) ) / ( size(sample,1)-1 )%
    78
    sum((dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(sample,1)-1 )%-120.2444
    sum((dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(sample,1)-1 )%-126.9444

  2. 2.    计算对角线各个维度上的方差
    std(dim1)^2      %
    得到:301.1556
    std(dim2)^2      %
    得到:268.9444
    std(dim3)^2       %
    得到:216.0111
    这样,我们就得到了计算协方差矩阵所需要的所有数据

  3. 3.    调用Matlab自带的cov函数进行验证:

cov(sample)

结果:

wKioL1QmtK2yqI6-AABsXyajRmA590.jpg

跟我们计算的结果一直,说明计算结果是正确的。

 

最后,理解协方差矩阵
关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度

★意义:随机变量之间的相互关系