奇异值分解和主成分分析有什么区别?
二者联系紧密,但从降维的角度理解,它们降维的对象不同。
考虑矩阵 X\in R^{p\times n}
场景1:将其看作是 n 个 p 维样本,每一列代表一个样本。我们希望将这些样本的维度从 p 维降至 d 维,并且尽可能保证样本的真实性。
场景2:将其看作一张图片,我们希望图片能节省空间,并且尽可能不失真。
场景1采用PCA;场景2采用SVD。
下面从数学的角度来描述这种差异:
场景1:
在这个场景中,我们希望将表示样本( X 的每一列)的基从 p 维降至 d 维。
而这 d 维基就是 d 个主成分。根据PCA的理论,这 d 个主成分就是 X 协方差矩阵 \Sigma 最大 d 个特征值对应的特征向量,其中 \Sigma=\frac{1}{n}XX^{T} 。
我们对 \Sigma 进行特征值分解:
\Sigma=U\Lambda U^{T}
其中 \Lambda=diag(\lambda_{1},..., \lambda_{p}) , \Sigma 的特征值 \lambda_{i} 按照降序排列。
那么 U 的前 d 列 \{u_{1},..., u_{d}\} 就是所求的 d 个主成分,即 n 个样本都能用 \{u_{1},..., u_{d}\} 的线性组合近似表示。
场景2:
在这个场景中,我们希望表示 X 的基从 p 维降至 d 维。
对 X 进行奇异值分解:
X=V\Sigma^{'} W=\sum_{j=1}^{p}{\sigma_{j}v_{j}w_{j}^{T}} \ \ (p\leq n)
其中 X 的奇异值 \sigma_{j} 按照降序排列。
注意 X 可以由 p 维基 \{v_{j}w_{j}^{T},...,v_{p}w_{p}^{T}\} 表示,通过奇异值分解可以将这组 p 维基降维成 d 维基\{v_{j}w_{j}^{T},...,v_{d}w_{d}^{T}\} ,从而近似表示 X 。
再说一下它们的联系:
在扰动理论(perturbation theory)中,考虑 X 的扰动对PCA的影响,既可以从 \Sigma 的特征空间(U 的列空间)出发,又可以从 X 的左奇异空间( V 的列空间)出发。