PCA和SVD区别和联系

 一、PCA:
PCA
图1.寻找主成分方向
    PCA的中文名叫做主成分分析,是降维和去噪的一种重要方法。PCA选取包含信息量最多的方向对数据进行投影。其投影方向可以从最大化方差或者最小化投影误差两个角度理解(详细推导见机器学习圣经PRML)。假设有n×dn×d矩阵X,每一行是一个dd维样本xixi,寻找投影方向vjvj以最大化投影方差:

X'X
图2.X’X
 

二、SVD:

如果对XX做奇异值矩阵分解(SVD分解):

注意到PCA也能达到降秩的目的,但是PCA需要进行零均值化,且丢失了矩阵的稀疏性。

数值稳定性

通过SVD可以得到PCA相同的结果,但是SVD通常比直接使用PCA更稳定。因为PCA需要计算XXX⊤X的值,对于某些矩阵,求协方差时很可能会丢失一些精度。例如Lauchli矩阵:

在Lauchli矩阵里,ee是很小的数,e2e2无法用计算机精确表示,从而计算XXX⊤X会丢失ee这部分信息。

四、参考资料

[1] Pattern Recognition and Machine Learning

[2] Mathematics Stack Exchange:http://math.stackexchange.com/questions/3869/what-is-the-intuitive-relationship-between-svd-and-pca

[3] Cross Validated:http://stats.stackexchange.com/questions/134282/relationship-between-svd-and-pca-how-to-use-svd-to-perform-pca

Leave a Reply

Your email address will not be published. Required fields are marked *