在我们之前分类器的讨论中,如SVM、贝叶斯判别等,都假定已给出了特征向量维数确定的样本集,其中各样本的每一维都是该样本的一个特征。然而不同的特征对于分类器设计的影响是不同的,如果将数目很多的测量值不做分析,全部直接用作分类特征,不但耗时,而且会影响到分类的效果,产生“特征维数灾难”问题。因此,我们需要对特征进行选择和提取,即“降维”。
简介
PCA,全名主成分分析(Principal Component Analysis),又称为K-L变换,是一种特征提取的方法。与简单地删掉某n−k个特征不同,PCA将原来的特征做正交变换,获得的每个数据都是原来n个数据的线性组合,然后从新的数据中选出少数几个,使其尽可能多地反映各类模式之间的差异。而这些特征间又尽可能相互独立,则比单纯的选择方法更灵活、更有效。而PCA就是一种适用于任意概率密度函数的正交变换。
PCA的离散展开式
设一连续的随机实函数x(t),T1≤t≤T2,则x(t)可用已知的正交函数集{ϕj(t),j=1,2,…}的线性组合来展开,即
x(t)=a1ϕ1(t)+a2ϕ2(t)+⋯+ajϕj(t)+⋯=j=1∑∞ajϕj(t),T1≤t≤T2
式中,aj为展开式的随机系数,ϕj(t)为一连续的正交函数,它应满足,
∫T1T2ϕi(t)ϕ~j(t)={0,if i̸=j,1,if i==j.
其中,ϕ~j(t)为ϕj(t)的共轭复数式。
将上式写成离散的正交函数形式,使连续随机函数x(t)和连续正交函数ϕj(t)在区间T1≤t≤T2内被等间隔采样为n个离散点,即,
x(t)ϕj(t)→{x(1),x(2),…x(n)}→{ϕj(1),ϕj(2),…ϕj(n)}
写成向量形式,
xϕj=(x(1),x(2),…,x(n))T=(ϕj(1),ϕj(2),…,ϕj(n))T
将原展开式取n项近似,有,
x=j=1∑najϕj=Φa,T1≤t≤T2
其中,a为展开式中随机系数的向量形式,即
a=(a1,a2,…,an)T
Φ是一n×n的矩阵,
Φ=(ϕ1,ϕ2,…,ϕn)=⎣⎢⎢⎢⎢⎡ϕ1(1)ϕ1(2)…ϕ1(n)ϕ2(1)ϕ2(2)…ϕ2(n)…………ϕn(1)ϕn(2)…ϕn(n)⎦⎥⎥⎥⎥⎤
其中,每一列为正交函数集中的一个函数,小括号内的序号为正交函数的采样点次序。因此,Φ实质上是由ϕj向量组成的正交变换矩阵,它将x变换成a。
正交向量集的确定
在前面的讨论中,我们讨论了PCA的离散展开式,其实际上就是将原样本x变换为a。而变换的重点则是正交向量集Φ的确定。
在直接讨论正交向量集Φ之前,我们不妨先看看其他基本参量。设随机向量x的总体自相关矩阵为R=E{xxT},由
x=j=1∑najϕj=Φa,T1≤t≤T2
将x=Φa代入R=E{xxT},得
R=E{ΦaaTΦT}=ΦE{aaT}ΦT
因为我们希望向量a的各个不同分量应统计独立,即应使(a1,a2,…,aj,…,an)满足以下关系,
E(aiaj)={λi,0,if i=jif i̸=j
写成矩阵形式,应使:E{aaT}=Dλ,其中Dλ为对角形矩阵,其互相关成分均为0,即,
Dλ=⎣⎢⎢⎢⎢⎡λ10…00λ2…0……………………00…λn⎦⎥⎥⎥⎥⎤
则,
R=ΦDλΦT
由于Φ中的各个向量ϕj都相互归一正交,故有,
RΦ=ΦDλΦTΦ=ΦDλ
其中,ϕj向量对应为,
Rϕj=λjϕj
由矩阵知识可以看出,λj是x的自相关矩阵R的特征值,ϕj是对应的特征向量。因为R是实对称矩阵,其不同特征值对应的特征向量应正交,即,
ϕiTϕj={01if i̸=jif i=j
计算步骤
好了,罗里吧嗦说了这么多,大家可能会有疑问。PCA到底是什么?到底怎么做啊?
首先,PCA用于特征选择相当于一种线性变换,若从Φ这n个特征向量中取出m个组成变换矩阵Φ^,即
Φ^=(ϕ1,ϕ2,…,ϕm),m<n
此时,Φ^是一个n×m维矩阵,x是n维向量,经过Φ^Tx变换,即得到降维为m的新向量。
因此,PCA的计算步骤如下,
- 计算整体样本的均值,并对全部样本减去均值,以使均值成为新座标轴的原点;
- 求随机向量x的自相关矩阵:R=E{xxT};
- 求出矩阵R的特征值λj和对应的特征向量ϕj,j=1,2,…,n,得矩阵
Φ=(ϕ1,ϕ2,…,ϕn)
- 从中选取按照特征值大小,降序选取前m个特征向量ϕj,构成矩阵Φ^;
- 计算展开式系数
a=Φ^Tx

有效性
好了,PCA的计算步骤我们清楚了。可是,它为什么有效呢?它是如何保证降维后的特征向量与原特征向量的误差尽可能地小的?不急,我们接下来就来证明这一点。
我们已知,对于x=∑j=1najϕj,现取m项,对略去的系数项用预先选定的常数b代替,此时对x的估计值为,
x^=j=1∑majϕj+j=m+1∑nbϕj
则产生的误差为,
Δx=x−x^=j=m+1∑n(aj−b)ϕj
则Δx的均方误差为,
εˉ2=E{∣∣Δx∣∣}2=i=m+1∑n{E(aj−b)2}
要使εˉ2最小,则对b的选择应满足,
∂b∂E(aj−b)2=−2[E(aj−b)]=0
因此,b=E(aj),即对省略掉的a中的分量,应使用它们的数学期望来代替,此时的误差为,
εˉ2=j=m+1∑nE[(aj−E{aj})2]=j=m+1∑nϕjTE[(x−E{x})(x−E{x})T]ϕj=j=m+1∑nϕjTCxϕj
其中,Cx为x的协方差矩阵。设λj为Cx的第j个特征值,ϕj是与λj对应的特征向量,则
Cxϕj=λjϕj
由于
ϕjTCxϕj=λj
因此,
εˉ2=j=m+1∑nϕjTCxϕj=j=m+1∑nλj
由此可以看出,λj值越小,误差也越小。因此,我们也可以说对于PCA,最小化样本均方误差等价于最大化样本方差。
总结
PCA是在均方误差最小的意义下获得数据压缩(降维)的最佳变换,且不受模式分布的限制。对于一种类别的模式特征提取,它不存在特征分类问题,只是实现用低维的m个特征来表示原来高维的n个特征,使其误差最小,亦即使其整个模式分布结构尽可能保持不变。
参考文献
黄庆明,《第四章.ppt》
郭嘉丰,《无监督学习——维度约简》