主成分分析(PCA)模型学习笔记(一)

PCA(主成分分析)是解决过拟合和维度灾难问题的一种方法,通过降维来减少数据的复杂性。PCA的目标是找到最大化投影方差的主成分,同时保持数据的重构距离最小。它通过计算样本协方差矩阵并找到其特征向量来实现。降维后,数据的信息密度增加,还能起到一定的去噪作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么使用PCA

从过拟合说起

在数据量小、数据维度高,模型较为复杂时,很容易产生过拟合。训练误差小而泛化误差较大被称为过拟合,而我们所追求的是泛化误差较小,为了解决过拟合问题,一般有以下的解决方案,一是最直接有效的方法,增加数据量,但是增加数据量成本一般较高,二是进行正则化,规范参数空间防止过拟合,三是进行降维。

  • 解决过拟合问题的方法
    • 增加数据量/数据扩增
    • 正则化,如在损失函数中加入L1范数和L2范数
    • 降维
      • 特征选择:过滤法、包装法和嵌入法
      • 线性降维:LDA、PCA
      • 非线性降维 :流形

维度灾难

维度灾难,一般指在涉及到向量的计算的问题中,随着维数的增加,计算量呈指数倍增长的一种现象。在机器学习中,当数据的维度增加时,对于数据的需求量将会几何式增长。

下面尝试从几何的角度去理解维度灾难。在二维空间中,有一个边长为1的正方形,正方形有一个内切圆,相似的,在三维空间中,有一个边长为1的正方体,正方体有一个内接球,以此类推,超立方体和超球体的体积在各个维度中如下表所示

维度超立方体体积超球体体积
21 k 2 π ( 0.5 ) 2 k_2\pi(0.5)^2 k2π(0.5)2
31 k 3 π ( 0.5 ) 3 k_3\pi(0.5)^3 k3π(0.5)3
41 k 4 π ( 0.5 ) 4 k_4\pi(0.5)^4 k4π(0.5)4
………………
n1 k n π ( 0.5 ) n k_n\pi(0.5)^n knπ(0.5)n

其中 k i , i = 1 , 2 , … … , n k_i,i = 1,2,……,n kii=12……n为常数,当n趋向于无穷时,超球体的体积将会趋近于0,也就是说,在高维空间中,超球体的内部是“空的”,大部分数据都分布在超球体和超立方体之间的“边边角角”中,这也就造成了数据样本的稀疏性,同时也会导致样本的空间分布不均匀,进而导致难以进行分类。从几何的角度我们会发现,很多我们在低维空间中的直觉在高维空间中是不work的。因此,面对特别高维的数据时,如果数据量不够大,我们会需要进行降维。

模型定义

PCA的两种推导

可以将PCA模型总结为“一个中心,两个基本点”

  • 一个中心:原始特征空间的重构。PCA的核心是对特征空间进行重构,将原本相关的特征转化为互相正交。
  • 两个基本点
    • 最大投影方差:样本点在所求超平面上的投影尽可能分开
    • 最小重构距离:样本点到所求超平面的距离都足够近

基于两种性质,能够得到主成分分析的两种等价推导。

数据准备

对于数据集 { x i , i = 1 , 2... n } \{x_i,i=1,2...n\} {xi,i=1,2...n} x i x_i xi为p维向量,定义矩阵
X = ( x 1 , x 2 , . . . , x n ) T X = (x_1,x_2,...,x_n)^T X=(x1,x2,...,xn)T
定义样本均值矩阵
x ˉ = 1 n ∑ x i = 1 n ( x 1 x 2 . . . x n ) ( 1 1 . . . 1 ) T = 1 n X T 1 n \begin{aligned} \bar{x}&=\frac{1}{n}\sum x_i\\ &=\frac{1}{n}\begin{pmatrix}x_1&x_2&...&x_n\end{pmatrix}\begin{pmatrix}1&1&...&1\end{pmatrix}^T\\ &=\frac{1}{n}X^T1_n \end{aligned} xˉ=n1xi=n1(x1x2...xn)(11...1)T=n1XT1n
其中 1 n = ( 1 1 . . . 1 ) T 1_n=\begin{pmatrix}1&1&...&1\end{pmatrix}^T 1n=(11...1)T

定义样本协方差矩阵
S = 1 n ( x i − x ˉ ) ( x i − x ˉ ) T = 1 n ( x 1 − x ˉ x 2 − x ˉ . . . x n − x ˉ ) ( x 1 − x ˉ x 2 − x ˉ . . . x n − x ˉ ) T \begin{aligned} S=& \frac{1}{n}(x_i-\bar{x})(x_i-\bar{x})^T\\ &= \frac{1}{n} \begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix} \begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix}^T \end{aligned} S=n1(xixˉ)(xixˉ)T=n1(x1xˉx2xˉ...xnxˉ)(x1xˉx2xˉ...xnxˉ)T
其中
( x 1 − x ˉ x 2 − x ˉ . . . x n − x ˉ ) = ( x 1 x 2 . . . x n ) − ( x ˉ x ˉ . . . x ˉ ) = X T − x ˉ ( 1 1 . . . 1 ) = X T − 1 n X T 1 n 1 n T = X T ( I n − 1 n 1 n 1 n T ) \begin{aligned} &\begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix}\\ &=\begin{pmatrix} x_1&x_2&...&x_n \end{pmatrix}- \begin{pmatrix} \bar{x}&\bar{x}&...&\bar{x} \end{pmatrix} \\ &=X^T-\bar{x}\begin{pmatrix}1&1&...&1\end{pmatrix}\\ &= X^T-\frac{1}{n}X^T1_n1_n^T\\ &=X^T(I_n-\frac{1}{n}1_n1_n^T) \end{aligned} (x1xˉx2xˉ...xnxˉ)=(x1x2...xn)(xˉxˉ...xˉ)=XTxˉ(11...1)=XTn1XT1n1nT=XT(Inn11n1nT)
则可知
S = 1 n X T ( I n − 1 n 1 n 1 n T ) ( I n − 1 n 1 n 1 n T ) T X = 1 n X T H n H n T X \begin{aligned} S &= \frac{1}{n}X^T(I_n-\frac{1}{n}1_n1_n^T)(I_n-\frac{1}{n}1_n1_n^T)^TX\\ &=\frac{1}{n}X^TH_nH_n^TX \end{aligned} S=n1XT(Inn11n1nT)(Inn11n1nT)TX=n1XTHnHnTX
其中 H n = I n − 1 n 1 n 1 n T H_n = I_n-\frac{1}{n}1_n1_n^T Hn=Inn11n1nT被称为中心矩阵,有如下性质
H n = H n T H n 2 = H n \begin{aligned} H_n = H_n^T\\ H_n^2=H_n \end{aligned} Hn=HnTHn2=Hn
S = 1 n X T H n X S = \frac{1}{n}X^TH_nX S=n1XTHnX

最大投影方差

请添加图片描述
从最大投影方差角度去考虑,也即是说样本点在超平面上的投影应当尽可能分开,则应当使投影后样本方差最大化。如图,样本点投影到y_1方向后样本会较为分散,y_1方向就是我们所需要寻找的“主成分”。
w w w为我们所要求的主成分方向,由于我们不需要考虑其长度,故可以先规定 w T w = 1 w^Tw=1 wTw=1,则中心化后的样本点 x i x_i xi w w w上的投影为 ( x i − x ˉ ) T w (x_i-\bar{x})^Tw (xixˉ)Tw,则投影点的样本协方差矩阵为
J = 1 n ∑ i = 1 n [ ( x i − x ˉ ) T w ] 2 = 1 n ∑ i = 1 n w T ( x i − x ˉ ) ( x i − x ˉ ) T w = 1 n w T ( ∑ i = 1 n ( x i − x ˉ ) ( x i − x ˉ ) T ) w = 1 n w T S w \begin{aligned} J &= \frac{1}{n}\sum_{i=1}^{n}{[(x_i-\bar{x})^Tw]^2}\\ &=\frac{1}{n}\sum_{i=1}^{n}w^T(x_i-\bar{x})(x_i-\bar{x})^Tw\\ &=\frac{1}{n}w^T(\sum_{i=1}^{n}(x_i-\bar{x})(x_i-\bar{x})^T)w\\ &=\frac{1}{n}w^TSw \end{aligned} J=n1i=1n[(xixˉ)Tw]2=n1i=1nwT(xixˉ)(xixˉ)Tw=n1wT(i=1n(xixˉ)(xixˉ)T)w=n1wTSw
则问题转化为求
w ^ = a r g m a x w w T S w  s.t.  w T w = 1 \begin{aligned} &\hat{w} = \mathop{\mathrm{argmax}}\limits_{w}{w^TSw}\\ &\text{ s.t. } w^Tw = 1 \end{aligned} w^=wargmaxwTSw s.t. wTw=1
使用拉格朗日乘子法求解该问题
L ( w , λ ) = w T S w + λ ( 1 − w T w ) ∂ L ∂ w = 2 S w − 2 λ w = 0 S w = λ w \begin{aligned} L(w,\lambda) = w^TSw + \lambda (1-w^Tw)\\ \frac{\partial L}{\partial w}= 2Sw-2\lambda w=0\\ Sw = \lambda w \end{aligned} L(w,λ)=wTSw+λ(1wTw)wL=2Sw2λw=0Sw=λw
观察最后得到的式子后我们不难发现,所求的 w w w实际上就是样本协方差矩阵的特征向量,而 λ \lambda λ则是对应的特征值而对该式子左右各左乘一个 w T w^T wT后式子变成了
w T S w = λ w T w J = λ \begin{aligned} w^TSw& = \lambda w^Tw\\ J&=\lambda \end{aligned} wTSwJ=λwTw=λ
也即是说对于越大的特征值对应的特征向量,投影点样本协方差就越大,则可以根据特征值进行排序,确定主成分的顺位,保留排位靠前的主成分,进而实现降维。

最小重构距离

为表达方便,下面直接使用已经中心化后的数据,也即 ∑ x i = 0 \sum x_i=0 xi=0(我太懒了),记 W = ( w 1 w 2 . . . w d ) W = \begin{pmatrix}w_1&w_2&...&w_d\end{pmatrix} W=(w1w2...wd),其中 w i w_i wi为重构特征空间后的坐标轴向量,且 w i T w i = 1 w_i^Tw_i = 1 wiTwi=1则对于每一个样本点,可以使用新坐标系进行重构,也即 x i = ∑ k = 1 d ( x i T w k ) w k x_i = \sum_{k=1}^{d}{(x_i^Tw_k)w_k} xi=k=1d(xiTwk)wk,舍弃一些特征,只取 p p p个特征则可得 x i ^ = ∑ k = 1 p ( x i T w k ) w k \hat{x_i} = \sum_{k=1}^{p}{(x_i^Tw_k)w_k} xi^=k=1p(xiTwk)wk,则重构距离可以表示为
J = ∑ i = 1 n ∥ x i − x i ^ ) ∥ 2 = ∑ i = 1 n ∥ ∑ k = 1 d ( x i T w k ) w k − ∑ k = 1 p ( x i T w k ) w k ∥ 2 = ∑ i = 1 n ∥ ∑ k = p + 1 d ( x i T w k ) w k ∥ 2 \begin{aligned} J &= \sum_{i = 1}^n\left \| x_i-\hat{x_i})\right \|^2 \\ &=\sum_{i = 1}^n\left \|\sum_{k=1}^{d}{(x_i^Tw_k)w_k}-\sum_{k=1}^{p}{(x_i^Tw_k)w_k}\right \|^2\\ &=\sum_{i = 1}^n\left \|\sum_{k=p+1}^{d}{(x_i^Tw_k)w_k}\right \|^2\\ \end{aligned} J=i=1nxixi^)2=i=1n k=1d(xiTwk)wkk=1p(xiTwk)wk 2=i=1n k=p+1d(xiTwk)wk 2
对于 ∥ ∑ k = p + 1 d ( x i T w k ) w k ∥ \left \|\sum_{k=p+1}^{d}{(x_i^Tw_k)w_k}\right \| k=p+1d(xiTwk)wk ,该式子可视为在以 w p + 1 , w p + 1 , . . . , w d w_{p+1},w_{p+1},...,w_{d} wp+1,wp+1,...,wd为基向量的坐标系中求向量 ( x i T w p + 1 x i T w p + 2 . . . x i T w n ) \begin{pmatrix}x_i^Tw_{p+1}&x_i^Tw_{p+2}&...&x_i^Tw_{n}\end{pmatrix} (xiTwp+1xiTwp+2...xiTwn)的模长,则式子可改写为
J = ∑ i = 1 n ∑ k = p + 1 d ( x i T w k ) 2 = ∑ k = p + 1 d ∑ i = 1 n w k T x i x i T w = n ∑ k = p + 1 d w k T S w \begin{aligned} J &= \sum_{i = 1}^n\sum_{k=p+1}^{d}(x_i^Tw_k)^2\\ &=\sum_{k=p+1}^{d}\sum_{i = 1}^nw_k^Tx_ix_i^Tw\\ &=n\sum_{k=p+1}^{d}w_k^TSw \end{aligned} J=i=1nk=p+1d(xiTwk)2=k=p+1di=1nwkTxixiTw=nk=p+1dwkTSw
同样使用拉格朗日乘子法进行求解,将会得到与最大投影方差角度一样的结果

小结

PCA仅仅只需要保留 W ∗ W^* W(大小排位靠前的特征值所对应的特征向量组成的矩阵)与样本均值向量(用于中心化),即可通过简单的矩阵减法和乘法将新样本投影到低维空间中去,尽管因舍弃了某些特征,导致低维空间与高维空间必然有所不同,会舍弃掉一部分信息,但是这是必要的,一方面,舍弃这部分信息后将使得样本信息密度增大,另一方面,数据受到噪音影响是,最小的特征值所对应的特征向量往往与噪音有关,将他们舍弃能够一定程度上起到去噪的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值