机器学习复习14-PCA和SVD

原文地址:https://blog.csdn.net/qq_22238533/article/details/79460711
文章中有部分内容不严谨,但是不影响整体理解,本文在原文基础上加入自己的理解和笔记,复习面试用。

SVD

SVD,奇异值分解,是属于矩阵分解里面的一种方法
矩阵分解中还有一种比较常用的方法,如下图:
在这里插入图片描述
上图中的矩阵A 为 n*n 的对称矩阵,那么如果矩阵A不对称呢?不对称矩阵A的分解就叫做奇异值分解SVD,如下图:
在这里插入图片描述
在这里插入图片描述
所以接下来要对U、S、V进行求解,当对U、S、V求解完毕,就相当于对该矩阵A成功的进行了SVD分解了
在这里插入图片描述
上述求解过程不需要掌握,知道就行。
在这里插入图片描述
至此,SVD完成~

SVD与PCA的关系

上述对SVD的描述,是对SVD本身分解过程计算U、S、V过程的描述,但是并未涉及到SVD怎么关联上降维、PCA的问题。我们先简略说下之前学过的PCA:

求得投影矩阵 P ( m × k ) P(m×k) 后,将数据集 X ( n × m ) X(n×m) 做线性变换 P P 可以得到降维后的结果 Y ( n × k ) Y(n×k) 。(其中 n n 是样本的条数, m m 是原始数据特征的维度, k k 是降维后特征的维度),即 Y = X P Y=XP

PCA从输入输出的角度来理解,是上述那样;如果从过程来理解,则为:
先求出X的协方差矩阵,求出该矩阵的特征值和特征向量,将特征值排序,选择前k个主要特征值(主成分),丢弃掉剩余特征,即完成了降维操作。

而SVD则可以直接对X进行奇异值分解,得到
X = U S V T X=USV^T
其中的 V V 相当于PCA中的 P P
U S US 相当于PCA后的结果 Y Y

说简单点,对数据集X做SVD就可以直接得到PCA的结果Y
上述结论的推导过程如下,不需要掌握:
在这里插入图片描述
其实这也意味着,求解PCA,我们并不是只有求解协方差矩阵一条路可以走,直接SVD求解反而很多时候效果很好。


以上便是 SVD 以及 PCA和SVD 的 联系与区别。KO~