PCA之进一步理解数学上的解释

本文详细解析PCA降维的数学原理,包括方差最大、协方差为0、均值调整、协方差矩阵求解及特征向量求取。解释了为什么方差最大有助于数据分散,协方差为0确保维度间无关性,以及如何通过矩阵对角化实现降维。解答了读者在理解过程中的疑虑,并提供了关键步骤的深入分析。

最早接触PCA是大三学模式识别,看了PCA算法,想也没想原理,直接Matlab开码,后来才发现有直接函数= =
当时就有同学说要理解原理,我当时赶进度直接skip掉理解了,后来发现PCA用得太多了


昨日看到 @码代码的张洋 一篇极好的深入浅出介绍PCA的博客  http://blog.codinglabs.org/articles/pca-tutorial.html

私以为国内教科书都写的鬼话,而这种东西才是初学者看起来及其舒服的人话。
不过对于博客里面,还有一些地方有点疑惑。



PCA降维数学原理:
1.方差最大的前K个方向
(空间变换之后,每一个维度的方差最大的前K个方向,K<=N)记得当时做人脸的时候,1W多维,K200维差不多就和原来数据非常接近了,在增大K,与原始数据接近程度缓慢


2.协方差为0
变换为K维向量之后,每两个维度之间协方差为0,C(K,2)中,在协方差矩阵中每项对称出现2次,所以和对角矩阵联系起来。
本质为协方差绝对值尽可能小,0则是最小。
这里对协方差有了进一步的理解,两个随机变量的变化趋势,如果两个随机变量都比均值大,或者都比均值小,也即变化趋势一致,则协方差越大,
一个比均值大,一个比均值小,则变化趋势相反,则协方差越小。由于协方差是cov(X,Y)=E((X-E(X))(Y-E(Y))),要将每项累加起来,因此前面的"越大""越小"可以理解
为对最后协方差的贡献,如果每个分量都大,自然最后越大。


3.首先进行处理,每一维-E(X),目的是后面使协方差为0时比较方便,类似于做的优化。


4.1/m X XT 这么做的目的是求了原始数据的协方差矩阵,m个n维向量可以得到n阶方阵,只有方阵才能求特征值。
得到的矩阵,对角线是方差(假定变换后保持了每一维均值为0的性质,虽然还没证明),其他i行j列和j行i列是i维和j维的协方差,(1<=i,j<=n) 优化的目标是协方差为0,
方差尽可能大,因此矩阵对角化很好的完成了这个目标,对角化之后的矩阵方差正好是特征值,所以进行对角化,但其实目的是求 D=PCPT,(C=1/m*X*XT)的对应矩阵P
,而先带知道他是C的特征向量构成的,因此转化为求C的特征向量,其中P的一行是一个特征向量。那么我可以找P的前K行,如果D按照对角线左上到右下大到小(特征值)排列,
那么对应的转化后数据每一维的方差也是按照从大到小排列,最后达成了目的,方差最大的K个方向,同时每一维之间线性无关。


5.为啥方差最大呢?
我们的目的使得降维后数据要尽可能分散,因为如果原来高维的点是分散的,最后降维投影后某一维重合到一起了,就不好区分了,到后面用ML自然区分不开,
协方差为0是使得维度之间尽可能无关,这样可能没有信息冗余,也即每个维都"很有用"






对博客中的描述的遗留问题:


1. 方差部分最后一行
寻找一维基应该改为寻找N维基,N是原始数据X的维度。


2.方差部分第三行文字(ab解释不对)
因为a 是指Xi(向量)投影到这个基之后在这个基上的坐标,而原始数据每一维先处理了-E(X),使得原始数据每一维均值为0,然后每个X投影到基上(左乘基向量),可以证明变换后数据每一维仍然保持均值为0的性质?


3.协方差矩阵上方第四行(两个方向正交)
"为了让协方差为0,我们选择第二个基时只能在与第一个基正交的方向上选择。因此最终选择的两个方向一定是正交的。"
是否也是默认证明了这个性质,若第二个基与第一个基正交,可以推导出原始数据投影在基1和基2的两个维度的两个向量协方差为0,同时也基于之前的变换后每一维的均值为0?


4.二维空间基向量 可以2个 或者三个??线代的向量空间有点忘了= =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值