PCA主成分分析及其数学证明

PCA主成分分析是一种数据降维的方法,它的目的是找到一组新的正交基,使得数据在这组基上的投影能够最大化方差,从而保留数据的主要信息。PCA主成分分析的公式有以下几个:

  • 数据矩阵 X X X,每一行是一个样本,每一列是一个特征。
  • 均值向量 x ˉ \bar{x} xˉ,每个元素是对应特征的均值,即 x ˉ i = 1 n ∑ j = 1 n x j i \bar{x}_i=\frac{1}{n}\sum_{j=1}^n x_{ji} xˉi=n1j=1nxji
  • 去均值化后的数据矩阵 Z Z Z,每个元素是对应特征减去均值,即 z i j = x i j − x ˉ i z_{ij}=x_{ij}-\bar{x}_i zij=xijxˉi
  • 协方差矩阵 C C C,每个元素是对应特征之间的协方差,即 c i j = 1 n − 1 ∑ k = 1 n ( z k i z k j ) c_{ij}=\frac{1}{n-1}\sum_{k=1}^n (z_{ki}z_{kj}) cij=n11k=1n(zkizkj)。协方差矩阵也可以写成 C = 1 n − 1 Z T Z C=\frac{1}{n-1}Z^TZ C=n11ZTZ
  • 特征值 λ i \lambda_i λi和特征向量 v i v_i vi,满足 C v i = λ i v i Cv_i=\lambda_iv_i Cvi=λivi。特征值表示对应特征向量方向上的方差大小,特征向量表示新的正交基方向。
  • 主成分 t i t_i ti,是数据在特征向量上的投影,即 t i = Z v i t_i=Zv_i ti=Zvi。主成分也可以看作是新的特征空间中的坐标。
  • 降维后的数据矩阵 Y Y Y,是将数据投影到前 k k k个最大特征值对应的特征向量上,即 Y = Z V k Y=ZV_k Y=ZVk,其中 V k V_k Vk是由前 k k k个特征向量组成的矩阵。

对于公式的解析,可以参考以下几个方面:

  • PCA主成分分析是一种线性变换,它将原始数据从 n n n维空间变换到 k k k维空间,其中 k < n k<n k<n。这种变换可以看作是一种旋转和压缩的过程,旋转是为了让新的坐标轴与数据的主要变化方向一致,压缩是为了去除那些方差较小或者不相关的维度。
  • PCA主成分分析的目标是最大化数据在新坐标轴上的方差,这样可以保留数据中最重要的信息。这个目标可以通过求解协方差矩阵的特征值和特征向量来实现。协方差矩阵反映了数据各个特征之间的相关性,其对角线上的元素是各个特征自身的方差。协方差矩阵的特征值表示了各个特征向量方向上的方差大小,特征向量表示了新坐标轴的方向。选择最大的 k k k个特征值对应的特征向量作为新坐标轴,就可以实现数据降维。
  • PCA主成分分析有两种常用的实现方法:基于特征值分解协方差矩阵和基于奇异值分解(SVD)协方差矩阵。基于特征值分解协方差矩阵的方法需要先计算协方差矩阵,然后对其进行特征值分解,得到特征值和特征向量。基于奇异值分解协方差矩阵的方法不需要显式地计算协方差矩阵,而是直接对数据矩阵进行奇异值分解,得到奇异值和奇异向量。两种方法的结果是一致的,但是基于奇异值分解协方差矩阵的方法更加稳定和高效。

好的,我可以给你一个具体的例子来帮助你理解主成分分析的数学推导³ 。

假设我们有以下四个样本,每个样本有两个特征 x 1 x_1 x1 x 2 x_2 x2

样本编号 x 1 x_1 x1 x 2 x_2 x2
112
233
345
467

我们可以将这些样本用矩阵表示为:

X = [ 1 2 3 3 4 5 6 7 ] X=\begin{bmatrix} 1 & 2 \\ 3 & 3 \\ 4 & 5 \\ 6 & 7 \end{bmatrix} X= 13462357

我们的目标是将这些样本从二维降维到一维,即找到一个新的坐标轴 u 1 u_1 u1,使得样本在这个坐标轴上的投影能够最大化方差,从而保留数据的主要信息。我们可以用以下公式表示这个投影:

y i = u 1 T x i y_i=u_1^Tx_i yi=u1Txi

其中 y i y_i yi是第 i i i个样本的投影值, u 1 u_1 u1是一个单位向量, x i x_i xi是第 i i i个样本的原始值。

我们可以看到,不同的 u 1 u_1 u1会导致不同的投影方差,我们想要找到一个最优的 u 1 u_1 u1,使得投影方差最大。我们可以用以下公式表示投影方差:

σ 2 = 1 n ∑ i = 1 n ( y i − y ˉ ) 2 \sigma^2=\frac{1}{n}\sum_{i=1}^n(y_i-\bar{y})^2 σ2=n1i=1n(yiyˉ)2

其中 y ˉ \bar{y} yˉ是投影值的均值,即 y ˉ = 1 n ∑ i = 1 n y i \bar{y}=\frac{1}{n}\sum_{i=1}^ny_i yˉ=n1i=1nyi。我们可以对这个公式进行一些变换,得到:

σ 2 = 1 n ∑ i = 1 n ( y i − y ˉ ) 2 = 1 n ∑ i = 1 n ( y i − 1 n ∑ i = 1 n y i ) 2 = 1 n ∑ i = 1 n ( y i − u 1 T x ˉ ) 2 = 1 n ∑ i = 1 n ( u 1 T x i − u 1 T x ˉ ) 2 = 1 n ∑ i = 1 n ( u 1 T ( x i − x ˉ ) ) 2 = 1 n ∑ i = 1 n u 1 T ( x i − x ˉ ) ( x i − x ˉ ) T u 1 = u 1 T ( 1 n ∑ i = 1 n ( x i − x ˉ ) ( x i − x ˉ ) T ) u 1 = u 1 T C u 1 \begin{aligned} \sigma^2&=\frac{1}{n}\sum_{i=1}^n(y_i-\bar{y})^2\\ &=\frac{1}{n}\sum_{i=1}^n(y_i-\frac{1}{n}\sum_{i=1}^ny_i)^2\\ &=\frac{1}{n}\sum_{i=1}^n(y_i-u_1^T\bar{x})^2\\ &=\frac{1}{n}\sum_{i=1}^n(u_1^Tx_i-u_1^T\bar{x})^2\\ &=\frac{1}{n}\sum_{i=1}^n(u_1^T(x_i-\bar{x}))^2\\ &=\frac{1}{n}\sum_{i=1}^nu_1^T(x_i-\bar{x})(x_i-\bar{x})^Tu_1\\ &=u_1^T(\frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})(x_i-\bar{x})^T)u_1\\ &=u_1^TCu_1 \end{aligned} σ2=n1i=1n(yiyˉ)2=n1i=1n(yin1i=1nyi)2=n1i=1n(yiu1Txˉ)2=n1i=1n(u1Txiu1Txˉ)2=n1i=1n(u1T(xixˉ))2=n1i=1nu1T(xixˉ)(xixˉ)Tu1=u1T(n1i=1n(xixˉ)(xixˉ)T)u1=u1TCu1

其中 x ˉ \bar{x} xˉ是原始数据的均值向量,即 x ˉ = 1 n ∑ i = 1 n x i \bar{x}=\frac{1}{n}\sum_{i=1}^nx_i xˉ=n1i=1nxi C C C是原始数据的协方差矩阵,即 C = 1 n ∑ i = 1 n ( x i − x ˉ ) ( x i − x ˉ ) T C=\frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})(x_i-\bar{x})^T C=n1i=1n(xixˉ)(xixˉ)T。我们可以对原始数据进行中心化处理,即减去均值向量,得到:

Z = X − [ x ˉ x ˉ ⋮ x ˉ ] = [ x 1 − x ˉ x 2 − x ˉ ⋮ x n − x ˉ ] Z=X-\begin{bmatrix} \bar{x}\\ \bar{x}\\ \vdots\\ \bar{x}\\ \end{bmatrix}= \begin{bmatrix} x_1-\bar{x}\\ x_2-\bar{x}\\ \vdots\\ x_n-\bar{x} \end{bmatrix} Z=X xˉxˉxˉ = x1xˉx2xˉxnxˉ

这样,协方差矩阵可以简化为 C = 1 n Z T Z C=\frac{1}{n}Z^TZ C=n1ZTZ,投影方差可以简化为 σ 2 = u 1 T ( 1 n Z T Z ) u 1 \sigma^2=u_1^T(\frac{1}{n}Z^TZ)u_1 σ2=u1T(n1ZTZ)u1。我们的优化目标是:

max ⁡ u 1 u 1 T ( 1 n Z T Z ) u 1 \max_{u_1}u_1^T(\frac{1}{n}Z^TZ)u_1 u1maxu1T(n1ZTZ)u1

同时,我们还有一个约束条件,就是 u 1 u_1 u1必须是一个单位向量,即 u 1 T u 1 = 1 u_1^Tu_1=1 u1Tu1=1。这样,我们可以用拉格朗日乘数法来构造一个拉格朗日函数:

L ( u 1 , λ ) = u 1 T ( 1 n Z T Z ) u 1 + λ ( 1 − u 1 T u 1 ) L(u_1,\lambda)=u_1^T(\frac{1}{n}Z^TZ)u_1+\lambda(1-u_1^Tu_1) L(u1,λ)=u1T(n1ZTZ)u1+λ(1u1Tu1)

对这个函数求偏导,得到:

∂ L ∂ u 1 = 2 ( 1 n Z T Z ) u 1 − 2 λ u 1 \frac{\partial L}{\partial u_1}=2(\frac{1}{n}Z^TZ)u_1-2\lambda u_1 u1L=2(n1ZTZ)u12λu1

令偏导为零,得到:

( 1 n Z T Z ) u 1 = λ u 1 (\frac{1}{n}Z^TZ)u_1=\lambda u_1 (n1ZTZ)u1=λu1

观察上式可以发现, λ \lambda λ ( 1 n Z T Z ) (\frac{1}{n}Z^TZ) (n1ZTZ)的特征值, u 1 u_1 u1是对应的特征向量。我们只要求解 ( 1 n Z T Z ) (\frac{1}{n}Z^TZ) (n1ZTZ)的特征值和特征向量,然后选择最大的特征值对应的特征向量作为 u 1 u_1 u1,就可以实现数据降维。

回到我们的例子中,我们先对原始数据进行中心化处理,得到:

Z = [ − 3 − 3 − 1 − 2 0 0 2 2 ] Z=\begin{bmatrix} -3 & -3 \\ -1 & -2 \\ 0 & 0 \\ 2 & 2 \end{bmatrix} Z= 31023202

然后计算协方差矩阵:

C = 1 4 Z T Z = [ 5 5 5 5 ] C=\frac{1}{4}Z^TZ=\begin{bmatrix} 5 & 5 \\ 5 & 5 \end{bmatrix} C=41ZTZ=[5555]

然后求解协方差矩阵的特征值和特征向量:

∣ C − λ I ∣ = 0 ∣ 5 − λ 5 5 5 − λ ∣ = 0 ( 5 − λ ) 2 − 25 = 0 λ 2 − 10 λ = 0 λ ( λ − 10 ) = 0 λ = 0 , 10 \begin{aligned} |C-\lambda I|&=0\\ \begin{vmatrix} 5-\lambda & 5 \\ 5 & 5-\lambda \end{vmatrix}&=0\\ (5-\lambda)^2-25&=0\\ \lambda^2-10\lambda&=0\\ \lambda(\lambda-10)&=0\\ \lambda&=0,10\\ \end{aligned} CλI 5λ555λ (5λ)225λ210λλ(λ10)λ=0=0=0=0=0=0,10

λ = 10 \lambda=10 λ=10时,代入协方差矩阵得到:

( C − 10 I ) u 1 = 0 [ − 5 5 5 − 5 ] u 1 = 0 u 1 = [ a a ] (C-10I)u_1=0\\ \begin{bmatrix} -5 & 5 \\ 5 & -5 \end{bmatrix}u_1=0\\ u_1=\begin{bmatrix} a \\ a \end{bmatrix} (C10I)u1=0[5555]u1=0u1=[aa]

由于 u 1 u_1 u1是单位向量,所以 a = 1 2 a=\frac{1}{\sqrt{2}} a=2 1 a = − 1 2 a=-\frac{1}{\sqrt{2}} a=2 1。我们可以任意选择一个作为 u 1 u_1 u1,比如:

u 1 = [ 1 2 1 2 ] u_1=\begin{bmatrix} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{bmatrix} u1=[2 12 1]

这样,我们就得到了最优的坐标轴 u 1 u_1 u1,它能够最大化数据的投影方差。我们可以用这个坐标轴来计算每个样本的投影值:

y i = u 1 T x i y = [ y 1 y 2 y 3 y 4 ] = X u 1 = [ 3 / 2 6 / 2 9 / 2 13 / 2 ] y_i=u_1^Tx_i\\ y=\begin{bmatrix} y_1 \\ y_2 \\ y_3 \\ y_4 \end{bmatrix}=Xu_1=\begin{bmatrix} 3/\sqrt{2} \\ 6/\sqrt{2} \\ 9/\sqrt{2} \\ 13/\sqrt{2} \end{bmatrix} yi=u1Txiy= y1y2y3y4 =Xu1= 3/2 6/2 9/2 13/2

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值