原文地址:https://blog.csdn.net/qq_22238533/article/details/79460711
文章中有部分内容不严谨,但是不影响整体理解,本文在原文基础上加入自己的理解和笔记,复习面试用。
SVD,奇异值分解,是属于矩阵分解里面的一种方法。
矩阵分解中还有一种比较常用的方法,如下图:
上图中的矩阵A 为 n*n 的对称矩阵,那么如果矩阵A不对称呢?不对称矩阵A的分解就叫做奇异值分解SVD,如下图:
所以接下来要对U、S、V进行求解,当对U、S、V求解完毕,就相当于对该矩阵A成功的进行了SVD分解了。
上述求解过程不需要掌握,知道就行。
至此,SVD完成~
上述对SVD的描述,是对SVD本身分解过程计算U、S、V过程的描述,但是并未涉及到SVD怎么关联上降维、PCA的问题。我们先简略说下之前学过的PCA:
求得投影矩阵 后,将数据集 做线性变换 可以得到降维后的结果 。(其中 是样本的条数, 是原始数据特征的维度, 是降维后特征的维度),即
PCA从输入输出的角度来理解,是上述那样;如果从过程来理解,则为:
先求出X的协方差矩阵,求出该矩阵的特征值和特征向量,将特征值排序,选择前k个主要特征值(主成分),丢弃掉剩余特征,即完成了降维操作。
而SVD则可以直接对X进行奇异值分解,得到
其中的
相当于PCA中的
而
相当于PCA后的结果
说简单点,对数据集X做SVD就可以直接得到PCA的结果Y。
上述结论的推导过程如下,不需要掌握:
其实这也意味着,求解PCA,我们并不是只有求解协方差矩阵一条路可以走,直接SVD求解反而很多时候效果很好。
以上便是 SVD 以及 PCA和SVD 的 联系与区别。KO~