PCA原理补充

本文是对PCA原理文章的补充。先介绍方差和协方差,方差衡量数据平行于坐标轴的分布,协方差描述多维随机变量间的相关关系,二者可构成协方差矩阵。接着说明如何利用协方差矩阵提取数据主成分,将问题转化为Rayleigh商,通过特征分解取得主成分。

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

PCA(Principal Component Analysis)是一种常用的数据分析方法。前面转了一篇关于PCA原理的文章,其中有些部分写的不是很清晰,因此做一个补充。

方差和协方差

下图是一个正态分布,均值和方差提供了对数据在特征空间的分布进行衡量的手段。如图所示,大部分的数据都分布在μ±3σ\mu\pm3\sigmaμ±3σ区间中。

而方差的计算公式如下,

σ(x,x)=E[(x−E(x))(x−E(x))]=E[(x−E(x))2] \begin{aligned} \sigma(x,x) &=E[(x-E(x))(x-E(x))]\\ &=E[(x-E(x))^2] \end{aligned} σ(x,x)=E[(xE(x))(xE(x))]=E[(xE(x))2]

从上式可以看出,方差只能用来表示数据平行于坐标轴(例如x,yx,yx,y)的数据分布,考虑下图二维的数据分布,

借助上图中的数据,我们可以计算出xxx方向的方差σ(x,x)\sigma(x,x)σ(x,x),以及yyy方向的方差σ(y,y)\sigma(y,y)σ(y,y)。但是数据在xxxyyy方向上的分布并没有描述出图中的对角线相关关系,这时候就有了协方差,利用协方差可以描述多维随机变量之间(多维特征空间)的相关关系,协方差的计算公式如下所示,

σ(x,y)=E[(x−E(x))(y−E(y))] \sigma(x,y)=E[(x-E(x))(y-E(y))] σ(x,y)=E[(xE(x))(yE(y))]

接下来,以二维数据为例,将计算的xxxyyy方向方差以及x,yx,yx,y的协方差,构成一个协方差矩阵,用Σ\SigmaΣ表示,如下所示,

Σ=(σ(x,x)σ(x,y)σ(y,x)σ(y,y)) \Sigma = \begin{pmatrix} \sigma(x,x) & \sigma(x,y)\\ \sigma(y,x) & \sigma(y,y) \end{pmatrix} Σ=(σ(x,x)σ(y,x)σ(x,y)σ(y,y))

其中,σ(x,y)=σ(y,x)\sigma(x,y)=\sigma(y,x)σ(x,y)=σ(y,x)所以它是一个对称矩阵。对于二维特征空间,协方差矩阵为2×22\times22×2,对于NNN维特征空间,协方差矩阵为N×NN\times NN×N

下图展示了数据分布不同,对应的协方差矩阵的不同。

PCA

那么如何利用协方差矩阵去提取出数据的主成分?这里以二维为例,即在特征空间中找到某一向量(方向),如果将我们的所有数据投影到这个向量上,能保证数据的范围,即方差最大。

假如我们已经找到了向量v⃗\vec{v}v,我们的数据矩阵为DDD(已经进行了Standardization,均值为0),DDD在向量v⃗\vec{v}v上的投影为v⃗TD\vec{v}^TDvTD,投影后的数据的方差计算如下式所示(下面计算中都略去了对样本数的平均项1m\frac{1}{m}m1),

v⃗TD(v⃗TD)T=v⃗TDDTv⃗=v⃗TΣv⃗ \begin{aligned} \vec{v}^TD(\vec{v}^TD)^T&= \vec{v}^TDD^T\vec{v}\\ &=\vec{v}^T\Sigma\vec{v} \end{aligned} vTD(vTD)T=vTDDTv=vTΣv

上式中比较关键的一步是DDT=ΣDD^T=\SigmaDDT=Σ(只有在我们的原始数据每一个维度,即feature,先经过feature scale,变为均值为0,才能得到这个结果)。

接下来我们的优化目标就是使得上式的方差取得最大值,在这里我们将向量v⃗\vec{v}v限定为单位长度,即v⃗Tv⃗=1\vec{v}^T\vec{v}=1vTv=1

Rayleigh商

由于协方差矩阵Σ\SigmaΣ是对称阵,则上述问题就转化为如下的Rayleigh商,

R(v⃗)=v⃗TΣv⃗v⃗Tv⃗ R(\vec{v})=\frac{\vec{v}^T\Sigma\vec{v}}{\vec{v}^T\vec{v}} R(v)=vTvvTΣv

由于协方差矩阵Σ\SigmaΣ是对称阵,所以一定可以对角化进行特征分解。由定理可得,R(v⃗)R(\vec{v})R(v)的最大值在矩阵Σ\SigmaΣ对应最大特征值所对应的特征向量处取得。

maxR(v⃗)=λmaxminR(v⃗)=λmin \begin{aligned} maxR(\vec{v})=\lambda_{max}\\ minR(\vec{v})=\lambda_{min} \end{aligned} maxR(v)=λmaxminR(v)=λmin

至此,关于为何在PCA时需要对数据的协方差矩阵进行特征分解,然后取得主成分的原理已经介绍完毕。

下面是不同协方差矩阵时所进行的特征分解,

协方差为0,

协方差不为0,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值