首先可以先阅读这一篇文档。
http://wenku.baidu.com/view/4df2c1d276a20029bd642d76.html
基本的算法和原理在上面的文档内已经写得很详细了,总结一下PCA的数学模型吧:
第一种求法:
易知A是对称阵,所以可以对角化
最终则可以得到:
第二种求法:
那就是矩阵的SVD分解
其中U、V均为酉矩阵(正交阵是实数特殊化的酉矩阵)。那么我们可以另P=UT,则也可以达到第一种求法的目的。
从信号的角度来说,对角阵中非零元素代表着实际的信号值,经过PCA之后,可以减少数据间的冗余度以及维度,并且可以去掉一些信息量少的非零元素值,进一步减少数据维度。
传统的PCA是通过协方差矩阵来判定变量间的相关性的。可以知道,两个变量间的相关性与是否相互独立是没有关系的。只有在数据符合正态分布(高斯分布)的时候,不相关才和相互独立等价。
所以传统PCA的算法只能用在数据服从正态分布的基础上,幸运的是生活中大部分观测的变量都符合这个分布。
或者可以通过改进的PCA算法,从而适应服从其他分布的数据。