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

SVD

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

SVD与PCA的关系

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

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

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

而SVD则可以直接对X进行奇异值分解,得到
X=USVTX=USV^T
其中的VV相当于PCA中的PP
USUS相当于PCA后的结果YY

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


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

相关文章: