说PCA的话,必须先介绍一下K-L变换了。
K-L变换是Karhunen-Loeve变换的简称,是一种特殊的正交变换。它是建立在统计特性基础上的一种变换,有的文献也称其为霍特林(Hotelling)变换,因为他在1933年最先给出将离散信号变换成一串不相关系数的方法。
K-L变换的突出优点是它能去相关性,而且是均方误差(Mean Square Error,MSE)意义下的最佳变换。
下面就简单的介绍一下K-L变换了。
设,随机向量X ∈Rn(n阶列向量),它的均值向量为mX,则其协方差矩阵可以表示为
Cx= E{(X-mx)*(X-mx)T} (2.1)
Cx是一个n*n阶的实对称阵。
K-L变换定义了一正交变换A ∈Rn*n,将X ∈Rn的向量映射到用Y ∈Rn代表的向量,并且使Y向量中各分量间不相关:
Y = A*(X-mx) (2.2)
因为Y的各分量间不相关,则其协方差矩阵Cy为对角阵,即
Cy = diag(λ1,λ2,...,λn)
而矩阵A总是可以找到的,因为对于实对称阵,总能找到一个正交阵A,使得ACxAT的运算结果为对称阵。K-L变换中,将A的每一行取为Cx的特征向量,并且将这些特征向量按对应的特征值大小进行降序排序,使最大特征值对应的特征向量在A的第一行,而最小特征值对应的特征向量在A的最后一行。而Cy是Cx对角化后的结果,所以两个矩阵的特征值是一致的(λ1,λ2,...,λn)。
这样就可以通过矩阵A实现由随机向量X到随机向量Y的K-L变换了,而由
X = ATY +mx (2.3)
就可以实现Y反变换到X。
若选择的最大k个特征值对应的k个特征向量,组成k×n的转换矩阵A,则变换后Y降为k维的,则由Y对X的恢复公式如下:
X‘ = AKY +mx (2.4)
这时候Cy = diag(λ1,λ2,...,λk),X与X’之间的均方误差可以由下式表达:
λk+1+.λk+2...+λn (2.5) (没有公式编辑器啊)
上面我们提到了对于特征值λ是从大到小排序的,那么这时候通过式子2.5可以表明通过选择k个具有最大特征值的特征向量来降低误差。因此,从可以将向量X和它的近似X‘之间的均方误差降至最小这方面来说,K-L变换是最佳变换。