Principle Component Analysis (PCA)

PCA (Principle Component Analysis)

此处感谢 shuhuai008 大佬!

主成分分析主要用于降维

给出一个数据集 \(D=\{(X_i,Y_i)\}_{i=1}^{N}\),其中\(X_i\in \mathbb{R}^p\),由于是对特征进行降维,所以 PCA 中不需要用到 \(Y_i\)

PCA 就是就是一句话:一个中心,两个基本点!

\[\begin{aligned} 一个中心:原始特征空间的重构。 \end{aligned} \]

\[两个基本点 \begin{cases} 最大投影方差\\ 最小重构距 \end{cases} \]

原始特征空间重构后各特征之间相互独立


最大投影方差

故名意思,最大投影方差就是想让特征向量 \(X_i\) 投影到向量 \(W\) 后各个投影点分得越开越好。我们可以提出一个策略,那就是规定一个基准点(其实就是 \(\overline{X}\) 投影在向量 \(W\) 上的点 ),让投影后的点到这个基准点的距离之和越大。

向量 \(X_i\) 到向量 \(W\) 的投影为 \(W^TX_i\),为了后续计算方便,我们需要对特征向量进行中心化,即对所有的 \(X_i\) 都减去一个 \(\overline {X}\),这样我们可以得到中心化后的向量 \(X_i-\overline{X}\)\(W\) 的投影:\(L_i = W^T(X_i-\overline{X})\),由于 \(L_i\) 可正可负,因此我们对 \(L_i\) 进行平方运算。最后求 \(\hat{W}=argmax\underset{w}{}\sum_{i=1}^{N}L_i(W)\) 就可以得到我们的期望向量 \(W\) 了!

数学推导如下:

\(\overline{X}=\frac{1}{N}\sum_{i=1}^{N}X_i\)

\(\overline{X}\) 带入得:

\[\begin{aligned} S &= \frac{1}{N}\sum_{i=1}^{N}(W^T(X_i-\overline{X}))^2 \\ &= \frac{1}{N}\sum_{i=1}^{N}W^T(X_i-\overline{X})(X_i-\overline{X})^TW\\ &= W^T\frac{1}{N}\sum_{i=1}^{N}(X_i-\overline{X})(X_i-\overline{X})^TW\\ \end{aligned} \]

\(\Sigma = \frac{1}{N}\sum_{i=1}^{N}(X_i-\overline{X})(X_i-\overline{X})^T\) 带入得:

\[\begin{aligned} S = W^T\Sigma W\\ \hat{W}=\underset{w}{argmax}S \end{aligned} \]

如果向量 \(W\) 不加约束,向量 \(W\) 本身也会对 \(S\) 得值产生影响,所以加一个约束: \(W^TW=1\),即 \(W\) 是单位向量。最后变成了一个求带约束得最优化问题:

\[\begin{cases} \hat{W}=\underset{w}{argmax}S\\ W^TW=1 \end{cases} \]

用拉格朗日乘数法:

\(L(W, \lambda)=W^T\Sigma W+\lambda(1-W^TW)\)

\(\frac{\partial{L}}{\partial{W}}=2\Sigma W-2\lambda W=0\Rightarrow\Sigma W=\lambda W\)

最后求解矩阵 \(\Sigma_{p\times p}\) 的特征值特征向量即可:

特征值:\(\lambda_1,\lambda_2,...,\lambda_p\)

特征值对应的特征向量:\(\mathbb{\alpha_1},\mathbb{\alpha_1},...,\mathbb{\alpha_p}\)

将特征值从大到小进行排序,最大的那个特征值 \(\lambda_i\) 所对应的特征向量 \(\mathbb{\alpha_i}\) 就是我们要求的投影向量 \(W\),此时投影方差是多少呢?其实就是 \(\lambda_i\) :

\(\because\Sigma W=\lambda W\Rightarrow W^{T}\Sigma W=\lambda W^TW=\lambda\)

\(\therefore S=W^T\Sigma W=\lambda\)

最小重构距离

设特征空间重构后的一组基为 \(\alpha_1,\alpha_2,...,\alpha_p\),特征向量投影到对应的基上得到的方差分别为 \(\lambda_1>\lambda_2>...>\lambda_p\) (其中\(\alpha_i 与 \lambda_i\) 一一对应)

因此我们能用得到的这组基来重新构造特征向量 \(X_i\):

\(X_i = \sum_{k=1}^{p}(\alpha_k^T(X_i-\overline{X}))\alpha_k\)

\(\hat{X_i}=\sum_{k=1}^{q}(\alpha_k^T(X_i-\overline{X}))\alpha_k\)

其中 \(X_i\) 是原始特征向量, \(\hat{X_i}\) 是降到 q 维的特征向量。所以 \(X_i\)\(\hat{X_i}\) 之间存在这一定的距离,我们的目标就是最小化这个距离,也就是最小化重构代价。

数学推导如下:

\[\begin{aligned} J&=\frac{1}{N}\sum_{i=1}^{N}\lVert X_i-\hat{X_i}\rVert^2\\ &=\frac{1}{N}\sum_{i=1}^{N}\sum_{k=q+1}^{p}(\alpha_k^T(X_i-\overline{X}))^2\\ &=\frac{1}{N}\sum_{i=1}^{N}\sum_{k=q+1}^{p}\alpha_k^T(X_i-\overline{X})(X_i-\overline{X})^T\alpha_k\\ &=\sum_{k=q+1}^{p}\alpha_k^T\frac{1}{N}\sum_{i=1}^{N}(X_i-\overline{X})(X_i-\overline{X})^T\alpha_k\\ &=\sum_{k=q+1}^{p}\alpha_k^T\Sigma\alpha_k \end{aligned} \]

其中 \(\alpha_k^T\alpha_k=1\)

接下来就是求带约束的最优化问题了:

\[\begin{cases} \hat{\alpha_k}=\underset{\alpha_k}{argmax}\sum_{k=q+1}^{p}\alpha_k^T\Sigma\alpha_k\\ \alpha_k^T\alpha_k=1 \end{cases} \]

因为 \(\alpha_i\) 之间相互独立,所以可以每次求一个 \(\alpha_i\) ,最后得到所有的 \(\alpha\)

具体可通过拉格朗日乘数法求解:

\(L(\alpha_i,\lambda)=\alpha_i^T\Sigma\alpha_i+\lambda(1-\alpha_i^T\alpha_i)\)

最后你会发现,不管是通过最大化投影方差还是通过最小化重构距离,得出的解都是一样的,这说明这里个基本点仅仅是观察的角度不同,殊途同归是也~~~

posted @ 2020-08-21 19:04  Codroc  阅读(338)  评论(0编辑  收藏  举报