原理分析
PCA(主成分分析)和SVD(奇异值分解)是数据降维和特征提取的核心工具
假设数据矩阵 XXX(已中心化):
- PCA步骤:先计算协方差矩阵 C=1n−1XTXC=\frac{1}{n-1}X^TXC=n−11XTX,其次计算CCC的特征向量: CCC是一个对称矩阵可以被对角化,即C=VLVTC=VLV^TC=VLVT,其中VVV是特征向量,LLL是对角矩阵,其对角中间数值为 λ1,λ2,λ3,… ,则XVXVXV就是降维后的向量,降维的程度取前多少个特征向量。
- SVD步骤:直接分解 X=UΣVTX=UΣV^TX=UΣVT,其中UUU为左奇异向量(正交), SSS为对角矩阵中间数值为s1,s2,s3,...s_1,s_2,s_3,...s1,s2,s3,...,VVV为右奇异向量(正交)。
结合SVD与PCA的步骤,有:
C=VSUTUSVT/(n−1)=VS2n−1VTC=VS{U^T}US{V^T}/(n - 1)=V\frac{{{S^2}}}{{n-1}}{V^T}C=VSUTUSVT/(n−1)=Vn−1S2VT
对比PCA的对角化的结果:有λi=s2i/(n−1){\lambda _i} = {s^2}_i/(n - 1)λi=s2i/(n−1),且有XV=USVTV=USXV = US{V^T}V = USXV=USVTV=US。
区别对比

总结
- PCA的核心数学实现可视为SVD的协方差场景特例,即当对中心化数据矩阵进行奇异值分解时,其左奇异向量直接对应主成分方向(特征空间基轴),而奇异值的平方恰为协方差矩阵的特征值(表征各维度方差能量)。这种等价性使SVD成为求解PCA的数值稳定捷径,无需显式计算协方差矩阵(避免病态条件问题),直接通过数据矩阵分解一步获得主成分与能量分布。【SVD直接分解,PCA对协方差矩阵操作后分解】
- 奇异值和特征向量存在关系,有λi=s2i/(n−1){\lambda _i} = {s^2}_i/(n - 1)λi=s2i/(n−1)
- SVD可以获取另一个方向上的主成分,而PCA只能获得单个方向上的主成分,PCA只与SVD的右奇异向量的压缩效果相同【SVD更加通用】
- 通过SVD可以得到PCA相同的结果,但是SVD通常比直接使用PCA更稳定。因为在PCA求协方差时很可能会丢失一些精度。
PCA与SVD的联系与区别
2627

被折叠的 条评论
为什么被折叠?



