PCA和SVD是一回事吗?

  数学 线性代数 数值计算 最优化    浏览次数: 2036
6

大概我明白,是做矩阵分解、降维的。但是这两个概念我有点混淆,它们是一个概念吗?有区别吗?多谢多谢!比心!


 

NextPage   2017-09-06 13:32



   1个回答 
10

它们不是一个回事,但是本质上是一样的。PCA的理论基础是SVD。所以是可以看作是一回事。

假设数据集是矩阵$X$,$n$行$p$列。

简单来说,SVD可以把$X$分解成如下形式:

$$X=\sum_{i=1}^r \sigma_iu_iv_i^T$$

这里的$r$是矩阵$X$的秩,$\sigma_i$是奇异值(为了方便,通常从$\sigma_1$到$\sigma_r$按照从大到小排列),$u_i$是高度为$n$的列向量,$v_i$是高度为$p$的列向量。$X$被表示为了$r$个成分的和。


SVD的工作完成后,就轮到PCA出场了。PCA的中文是主成分分析。假设我们想将$X$降为到$k$维,我们就选择最大的$k$个奇异值和它对应的$u_i, v_i$,也就是前$k$个主要成分。假设$\sigma_i$按照从大到小排列,那么$X$降为到$k$维之后应该是这样的

$$\sum_{i=1}^k\sigma_iu_iv_i^T$$

上面这个矩阵就是$k\times p$的矩阵。

如果想知道上面这个矩阵解释了原矩阵$X$方差的百分比,只需要计算

$$\frac{\sum_{i=1}^k \sigma_i^2}{\sum_{j=1}^r\sigma_j^2}$$

通常来说,在用PCA降维时,我们保留90%或者95%的方差。也就是上面的分式至少要大于0.9。


SofaSofa数据科学社区 DS面经 问答 实战

沛县李刚   2017-09-13 13:14



  相关主题

PCA与非负矩阵分解(NMF)的异同?   0回答

PCA的目标函数   1回答

Truncated SVD和PCA有什么区别吗?   1回答

PCA降维之前为什么要先标准化?   2回答

PCA会降低分类器的精度吗?   3回答

sklearn.decomposition.PCA方法中fit, fit_transform, transform应该怎么用   1回答

为什么PCA被称作非监督式学习?   2回答

利用PCA降维,降到几维比较合适?   1回答

除了PCA,还有什么降维的方法?   11回答

PCA降维中的特征值和特征向量   2回答

什么是Hessian矩阵和Jacobian矩阵   1回答

RMSProp的直白解释   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!