SVD与PCA区别
矩阵对向量的乘法,对应于该向量得旋转、伸缩。若对某向量只发生了伸缩而无旋转变化,则该向量是该矩阵的特征向量,伸缩比为特征值。
- PCA用来用来提取一个场的主要信息(即对数据集的列数——特征进行主成分分析),而SVD一般用来分析两个场的相关关系。
- PCA通过分解一个场的协方差矩阵(对特征),SVD是通过矩阵奇异值分解的方法分解两个场的协方差矩阵(特征、样本量)。
- PCA可用于特征的压缩、降维(去噪),SVD能够对一般矩阵分解,可用于个性化推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)等。
其实PCA几乎可以说是对SVD的一个包装,如果我们实现了SVD,那也就实现了PCA了。而且更好的地方是,有了SVD,我们就可以得到两个方向的PCA,如果我们对矩阵进行特征值的分解,只能得到一个方向的PCA。