Principal Component Analysis

本文介绍主成分分析(PCA)的基本原理及其应用。PCA是一种用于数据降维、数据压缩及特征提取的技术,通过寻找数据投影的最大方差方向实现降维。

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

Principal Component Analysis简称PCA,也叫Karhunen-Loeve变换。在数据降维,数据压缩,特征提取等方面得到的广泛的应用。相比大家都会用这个方法,Matlab代码貌似也就两行而已。但是它背后有坚实的数学基础,本文试图用简单的方法阐明PCA的原理。

把数据从高维变到低维,不是随便乱变换的,PCA的思想是:将数据投射到子空间,在这个子空间中数据的方差最大。为什么方差大好呢,道理很简单,如果投影之后数据全部挤在一起了就没有办法刻画数据的特征了。从另一个方面也可以理解PCA,那就是使投影过的数据和原来数据之间的垂直距离最小。说了这么多了,还是上图吧。。

红色是原来数据,紫色的线就是找到的子空间,PCA的目的就是让绿色的点方差最大,或者也可以理解为让蓝色的线长度最小,他们是等价的。接下来我们从方差最大来推导PCA的原理。设想我们有一组数据{Xn},n=1到N。每一个数据都是一个D维的列向量。我们的目的是找到一个子空间,它的维度为M<D,并且使投影之后的数据方差最大。

我们先从最简单的开始M=1。那么这个子空间就是一条直线,我们可以用一个D维的单位向量u1(长度并不重要,我们主要关注的是方向,所以用了单位向量)表示。所以原来的每一个数据xn,都被投影到了一个点,投影过后得到点的均值为,其中。投影得到的所有点的方差为,其中。S也就是我们所熟知的协方差矩阵。


好了,所有的定义都写好了,方差的表达式也有了,接下来我们的目的就是求u1的值使得S最大(约束条件为u1的长度为1)。这是最简单的一类优化问题,我们用拉格朗日乘子法,用该式子对u1求导=0可以推出,熟悉线性代数的童鞋都应该熟悉这个式子吧,没错,这个式子表明了为了使得方差最大,u1必须是S的一个特征向量。两边同时乘以u1的转置并利用u1长度为1可以推出,好了大功告成,这说明了等于方差,为了使得方差最大,那么就让为最大的特征值就行了!

以上我们对M=1做了推导,如果我们考虑更一般的情形M>1,用归纳法就可以很容易的看出来,最优的投影子空间就是S最大的M个特征向量张成的子空间。OK~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值