对于一个维数为D的高维空间,样本点xi=(x1,x2,…,xD)通过与矩阵W相乘映射到低维空间(维数为d,d<D)中的某个点zi=WTxi=(z1,z2,…,zd),矩阵W的大小是D∗d。令数据样本集的大小为N,PCA的目标是要让低维子空间中 zi 尽可能地分开,因此投影后样本的方差要尽可能的大。假定数据样本进行了中心化,数据每一维的均值为0,即 Σixi=0,乘上矩阵WT得到的降维后的数据每一维均值也为0,考虑高维空间中原始样本数据集的协方差矩阵C=1N∗XXT,协方差矩阵中对角线上的值为某一维的方差,非对角线上的值为两维之间的协方差。降维后低维子空间中相应的协方差矩阵为B=1N∗ZZT,如果希望降维后的点具有最大的可分性,那么协方差矩阵B对角线上的值也就是每一维的方差应该尽可能的大,同时为了让不同的属性能够更多地表示原始信息,而不包含冗余的信息,可以使不同属性之间正交,这种情况下矩阵B非对角线上的值即不同维之间的协方差为0。因此降维后的每一维既有足够的区分性,又能代表不同的信息。对于矩阵B,可进一步推导出
B=1N∗ZZT=1N∗WTX(WTX)T=WT(1N∗XXT)W=WTCW
这个式子表明,线性变换矩阵
W
实现数据降维的过程是将高维空间中的协方差矩阵
C
对角化,因此可通过求协方差矩阵
C
的特征值以及对应的特征向量来确定投影变换矩阵
W
。PCA的算法流程如下所述: