主成分分析(PCA)的一种理解和推导

10 篇文章 1 订阅
4 篇文章 0 订阅

       主成分分析的语境一般如下:假设需要预测的变量y由k个因素所制约,但是k比较大,使得数据维度较高,这会使得计算成本很大,数据非常稀疏;为了缓解这些问题,可以对数据进行降维,而主成分分析就是一种降维的方法和思想。

       怎么理解主成分分析呢?我们先从单个因素开始。假设y只受一个因素x影响,即y=f(x),那么如果x的变化很小,即x几乎只在一个较小的区域变化,或者说x的方差很小,那么如果f是连续的,我们可以近似的认为y也在一个很小的范围内变化,这时我们可以用一个常数去近似y。此时,相当于y不再受任何因素影响,因为我们已经将其近似为了一个常数,令y=c,那么通过优化算法就可以求得这个近似常数c,如果合理优化,我们可以知道c=f(\bar{x})。这就是在一维情形下的降维,将1个因素降到了0个因素。这种近似的前提就是x的方差很小,可以将其近似为一个常数,且f连续,可以近似的认为y也是一个常数。当然,尽管f连续,y也有可能在x均值的领域内相当敏感,f的形状起伏很大,从而一个常数并不能很好的近似,这样会导致这种降维方式的效果较差。

       同样的逻辑,我们来看两个因素的情形,即y=f(x1,x2)。这种情形下,点(x1,x2)在平面上会组成一个区域。我们希望通过同样的方式进行近似,从而降维。直观上,如果点(x1,x2)组成的区域在某个方向上变化较小,即在某个方向上方差较小,那么我们可以用常数来代替这个方向上的值,由于本身点(x1,x2)在这个方向上变化很小,如果f连续,我们认为f在这个方向的变化也很小,这时f就不受这个方向上值变换的影响。由于在这个方向上点的变化较小,那么自然的在跟这个方向正交的方向上,点的变化便相对较大,因为我们说较大较小,就是两个正交方向上进行比较的。这时,我们保留变化较大的那个方向,因为这个方向变化较大,自然预期y在这个方向上的变化跨度也较大,而在另一个正交方向上,(x1,x2)的变化较小,预期y在这个方向上的变化也较小,从而用常数近似。因此,我们可以保留变化较大的方向,用常数近似变化较小的方向,从而将y变成只受一个方向变化所影响,即将两个因素变成了一个因素,其中变化较大的方向就是主成分,是需要保留的,而变化较小的方向对y的影响是次要的,用常数近似,这便是主成分分析的朴素思想。

       对于k个因素,同样的,先找到点变化最大的方向,再在该方向正交的空间中找到点变化最大的方向,以此类推,直至到k维。为什么不同的主成分方向是正交的?这点其实是自然而然的。我们可以这样去理解:首先我们已经在全域上找到了最小变化的方向,并且用常数去近似这个方向,此时该方向上的点被压缩成了一个常数,即所有点在该方向的坐标都是一样的,所有的点投影在与该方向正交的空间上,且因为剩下的点的变化的最小方向肯定在这个正交的空间中,因此依此类推,所有的主成分方向肯定就是正交的。

       据此,不难知道,主成分分析实际上就是对一个高维点域进行一个正交分解,我们需要找到这样一个分解:依次在每个方向上有最大的变化(方差),或者最小的变化(方差)。无论是从最小方差开始找最次成分,还是从最大方差开始找最主成分,两者的结果都是一样的,是等价的。

       上面讲了主成分分析的朴素思想,下面讲一下主成分分析的推导。

       我们从找最大变化方向开始。对于k维空间,一个向量可以表示一个方向,因此,我们先随意取一个方向l,令其为(w1,w2,...,wk),由于该向量只代表某个方向,其长度不重要,因此我们可以将其标准化为单位向量,即w_{1}^{2}+w_{2}^{2}+...+w_{k}^{2}=1;又因为点域在该方向上的变化最大,即在该方向的投影的点的方差最大,根据点积,点(x1,x2,...,xk)在该方向上的投影为w1*x1+...+wk*xk,假设点由k个随机变量r1,r2,...,rn生成,则可知,点域在该方向上投影的方差为var(w1*r1+...+wk*rk)。据此,我们得到了求第一个主成分方向的方式,即:

argmax_{w1,...,wk}var(w_{1}r_{1}+...+w_{k}r_{k}),w_{1}^{2}+...+w_{k}^{2}=1

同样的,对于剩下的主成分方向,只需要在依次在跟前面主成分方向正交的基础上,利用相同的方式求出即可。

       只要我们求出了主成分方向,比如第一个主成分方向为w1,w2,...,wk,那么对应的主成分就是w1*r1+...+wk*rk,因为其会生成在主成分方向上的投影点。

       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值