在机器学习模式识别中,经常需要应用到协方差矩阵C和散度矩阵S。如在PCA(Principal Component Analysis)主成分分析中,需要计算样本的散度矩阵,有的论文是计算协方差矩阵。实质上两者意义差不多,散度矩阵乘以1/(n-1)就可以得到协方差矩阵了。
在模式识别中,散度矩阵也称为散步矩阵,有的也称为类内离散度矩阵或者类内离差阵,用一个等式关系可表示为:
散度矩阵=类内离散度矩阵=类内离差阵=协方差矩阵 × (n-1)
样本的协方差矩阵乘以n-1倍等于散度矩阵,其中n表示样本个数,散度矩阵的大小由特征维数d决定
,是一个d×d的半正定矩阵。
一、协方差矩阵基础
对于二维随机变量(X,Y)之间的相互关系的数字特征,我们用协方差来描述,记为Cov(X,Y):
Cov(X,Y)=E{[X−E(X)][Y−E(Y)]}=E(XY)−E(X)E(Y)Cov(X,Y)=E\left \{ [X-E(X)][Y-E(Y)]\right \}=E(XY)-E(X)E(Y)Cov(X,Y)=E{[X−E(X)][Y−E(Y)]}=E(XY)−E(X)E(Y)
Cov(X,Y)=1n−1∑i=1n(x−Xˉ)(y−Yˉ)Cov(X,Y)=\frac{1}{n-1}\sum _{i=1}^{n}(x-\bar{X})(y-\bar{Y})Cov(X,Y)=n−11∑i=1n(x−Xˉ)(y−Yˉ)
那么二维随机变量(X,Y)的协方差矩阵为:
C2×2=(C1×1C1×2C2×1C2×2)=(Cov(X,X)Cov(X,Y)Cov(Y,X)Cov(Y,Y))C_{2\times 2}=\begin{pmatrix} C_{1\times 1} &C_{1\times 2} \\ C_{2\times 1} & C_{2\times 2} \end{pmatrix}=\begin{pmatrix} Cov(X,X) &Cov(X,Y) \\ Cov(Y,X)& Cov(Y,Y) \end{pmatrix}C2×2=(C1×1C2×1C1×2C2×2)=(Cov(X,X)Cov(Y,X)Cov(X,Y)Cov(Y,Y))
同理,对于三维随机变量(X,Y,Z)的协方差矩阵可表示为:
对于n维X=(X1,X2,...,Xn)X=(X_{1},X_{2},...,X_{n})X=(X1,X2,...,Xn)协方差矩阵:
说明:
- 协方差矩阵是一个对称矩阵,且是半正定矩阵,主对角线是各个随机变量的方差(各个特征维度上的方差)
- 标准差和方差一般是用来描述一维数据的;对于多维情况,协方差是用于描述任意二维数据之间的关系(即两个特征之间的关系),一般用协方差矩阵来表示。因此协方差矩阵计算的是不同维度(不同特征)之间的协方差,而不是不同样本之间的。
- 协方差计算过程可简述为:先求各个分量的均值E(Xi),E(Xj)E(X_{i}),E(X_{j})E(Xi),E(Xj),然后每个分量减去各自的均值得到两条向量,再进行内积运算,然后求内积后的总和,最后除以n-1.
二、协方差矩阵的意义
为了更好的理解协方差矩阵的几何意义,下面以二维正态分布图为例(假设样本服从二维正态分布):
协方差矩阵C的特征值D与特征向量V分别为:
说明:
- 均值[0,0]代表正态分布的中心点,方差代表其分布的形状。
- 协方差矩阵C的最大特征值D对应的特征向量V指向样本分布的主轴方向。例如,最大特征值D1=5D_{1}=5D1=5,其对应的特征向量V1=[1,0]TV_{1}=[1,0]^{T}V1=[1,0]T即为样本分布的主轴方向(一般认为是数据的传播方向)。次大特征值D2=1D_{2}=1D2=1所对应的特征向量V2=[0,1]TV_{2}=[0,1]^{T}V2=[0,1]T即为样本分布的短轴方向。
总之:
- 样本均值决定样本分布中心点的位置
- 协方差矩阵决定样本分布的扁圆程度
- 是扁还是圆,由协方差矩阵的特征值决定:当特征值D1和D2的比值为1(D1/D2=1),则样本分布形状为圆形;当特征值的比值不为1时,样本分布为扁形。
- 偏向方向(数据传播方向)由特征向量决定。最大特征值对应的特征向量,总是指向数据最大方差的方向(椭圆形的主轴方向)。次大特征向量总是正交于最大特征向量(椭圆形的短轴方向)。
三、协方差矩阵的应用
协方差矩阵(散布矩阵)在模式识别中应用广泛,最典型的应用是PCA主成分分析了,PCA主要用于降维,其意义就是将样本数据从高维空间投影到低维空间中,并尽可能的在低维空间中表示原始数据。这就需要找到一组最合适的投影方向,使得样本数据往低维投影后,能尽可能表征原始的数据。此时就需要样本的协方差矩阵。PCA算法就是求出这堆样本数据的协方差矩阵的特征值和特征向量,而协方差矩阵的特征向量的方向就是PCA需要投影的方向!