PCA和SVD是一回事吗?

  数学 线性代数 数值计算 最优化
5

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


 

NextPage   2017-09-06 13:32



   1个回答 
9

它们不是一个回事,但是本质上是一样的。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。


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



相关问题

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

随机梯度下降(sgd)的收敛问题   2回答

Adam优化算法   1回答

对于小批量随机剃度下降法(mini-batch SGD),如何选择每批样本的数量?   1回答

最速下降法与梯度下降法   1回答

随机平均梯度法(Stochasitc Average Gradient)和随机梯度下降(SGD)有什么区别   3回答

牛顿法到底是一阶优化算法还是二阶优化算法?   2回答

PCA的目标函数   1回答

常说的低秩分解或者低秩逼近是什么意思?   1回答

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

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

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



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

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

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

我们谢绝答非所问。

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

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