c以前学习PCA和SVD的时候都是分开学的,也只是记住了求解方法,对于原理理解一直处于懵圈状态,查看了别人的解释,也尝试自己总结一下。如果哪里理解错了,那就gg了
PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。现在我们将数据抽象为一组向量 x x ,数据集表示
, 对于数据 X X ,去中心化后得到的矩阵
,则协方差矩阵为 ∑=X˜TX˜ ∑ = X ~ T X ~ 。
首先看一下PCA求解步骤:
1. 求协方差矩阵 ∑ ∑
2. 计算 ∑ ∑ 的特征值和特征向量,将特征值从大到小排列,前k个特征值对应的特征向量为 P P
3. 降维后的数据为
数据在 w w 方向上的投影为
,我们希望数据点在新的空间中保留最大的差异性即方差最大,所以:
希望 var(z)=wT∑w v a r ( z ) = w T ∑ w 最大化,其中 ∑=cov(x) ∑ = c o v ( x ) , ||w||=1 | | w | | = 1 。 根据拉格朗日:
m