PCA解析

1.例子引入

这里写图片描述

  如图所示,我们要将两类点(红点和蓝点)分类,希望能先通过降维之后再分类(直接分肯定也能分开)。那么我们需要将二维的数据(每个点包含横坐标和纵坐标,是二维的)降维到一维直线上的点。

  我们可以有多种降维的策略,通过将二维平面上的点映射到一维直线上,如上图所示就是两种映射方法:左边是投影到向量 u1 上,右边是投影到向量 u2 上。显然左边的投影能让数据分的更加散,能更好的进行分类;而右边的投影使得数据比较集中,不利于分类;所以左边的投影效果要比右边的要好。

  PCA的核心思想就是对数据进行降维,并且使得降维后的样本相对之间比较分散,也就是降维后的样本的方差尽可能大;并且还要保证降维后的数据与原来样本的差异性尽可能的小,即降维后的数据的均方误差尽可能的小。但这种样本尽可能的分散也不是绝对的好,这也意味着PCA并不是万能的,仅仅对某些类型的数据有效,具体是哪一类我也忘了(sorry)。

2.PCA

  主成分分析(Principal Component Analysis, PCA),将原有众多具有一定相关性的指标重新组合成一组少量互相无关的综合指标 。将原始的数据由高维度转化为低维度,目标有两个:1.使得降维后的样本的方差尽可能的大;2.使得降维后的数据的均方误差尽可能的小。

最大方差思想:使用较少的数据维度保留住较多的原数据特性

  假设将 D 维数据集{xn},n=1,2,...,N 降为 M 维,M<D,其中 N 表示总样本数。

  首先考虑M=1,即降为1维,定义这个空间的投影方向为 D 维向量u1,出于方便且不失一般性,令 uT1u1=1 ,即为该空间的基向量(单位长度为1)。每一个数据点 xn 在新空间中表示为标量 uT1xn ,类似于二维中的坐标。样本均值在新的空间中表示为 uT1x¯ ,其中 x¯=1NNn=1xn .

  现在我们要让降维后的样本的方差尽可能的大,即:

1Nn=1N{uT1xnuT1x¯}2=uT1Su1

其中 S=1NNn=1(xnx¯)(xnx¯)T ,是原样本的方差。

  我们的目标是最大化 uT1Su1,s.t.uT1u1=1 ,带约束条件的求极值问题要用朗格朗日乘子法,构造拉格朗日函数如下:

L(u1,λ1)=uT1Su1+λ1(1uT1u1)

其中 λ1 表示拉格朗日乘子,是一个正数。对 u1 求导置0得, Su1=λ1u1 ,也就是 u1 S 的特征向量,进一步得到u1Su1=λ1,所以要让 u1Su1 最大,也就是让 λ1 ,而 λ1 是特征向量 u1 对应的特征值,所以我们只要取最大的特征值对应的特征向量就能保证 u1Su1 最大(这里我们讨论的是降到一维的情况)。

  考虑更一般的情况(M>1),新空间中数据方差最大的最佳投影方向由协方差矩阵S的M个特征向量 {u1,...,uM} 定义,其分别对应M个最大的特征值 {λ1,...,λM} 。首先获得方差最大的1维,生成该维的补空间;继续在补空间中获得方差最大的1维,生成新的补空间;依次循环下去得到M维的空间。简而言之就是要获取 S 的前M个最大的特征值对应的特征向量 {u1,...,uM} 进行降维。例如某 D 维样本X={x1,...,xD},用前 M 个特征向量降维后的表示为{uT1X,...,uTMX},变为了 M 维。

最小均方误差思想:使原数据与降维后的数据( 在原空间中的重建) 的误差最小
  定义一组正交的D维基向量{u1,...,uD},由于基是完全的,原样本中每个数据点都可以表示为基向量的线性组合,即:

xn=i=DNαniui2.1

即用一组新的 D 维基向量来表示原D维样本 xn ,相当于做了一个坐标变换:
{xn1,...,xnD}{u1,...,un}{αn1,...,αnD}

anj=xTnuj2.2

将公式2.2带入到公式2.1中,可以得到:
xn=n=1D(xTnui)ui2.3

假设在新生成的D维度空间中,前M维表示样本独特的信息,后(D-M)维表示样本间共享的信息,则任意一个样本进行坐标变换后,生成的样本可以用 x~n 来表示:
x~n=i=1Mzniui+i=M+1Dbiui2.4

因为前 M 维是表示样本独特的信息,每个样本在前M维向量的比重是不一样的,用 zni 来衡量;而对于后 DM 维,因为是共享信息,所以每个样本对应的参数是相同的,用 bi 来表示。不同的变换对样本 xn 的表示如下:
假设源样本 Xn 的D维表示为:
(xn1,xn2,...,xnD)(1)

经过向量 ui 的坐标变换表示为:
((xTn1u1)u1,(xTn2u2)u2),...,(xTnDuD)uD)(2)

而再用M维变量采用独特的和共享的信息表示为:
(zn1u1,...,znMuM,bMuM,...,bDuD)(3)

进行坐标变换是为了能够找到最佳的适合用来降维的方向,而分成独特信息和共享信息是为了方便只保留独特信息进行降维。所以我们的目标是要让坐标变换后的数据和分成独特信息和共享信息的数据之间信息损失最小,这样就可以解除 ui ,即那个适合降维的方向。

  所以我们的目标是要让变换后的信息和原样本信息损失最少,即让

J=1Nn=1N||xnx~n||22.5

其中 xn x~n 分别表示经过坐标变换后的数据和经过区分独特信息和共享信息处理后的数据。将 (2) (3) 带入,可得
J=1Nn=1Nj=1M(xTnjujznj)uj+k=M+1D(xTnkukbk)uk2

所以我们需要找到使得 J 最小的znj bk ,分别对二者求导 并置为0:
Jznj=1N(xnjujznj)(uj)=0

znj=xnjuj=xnuj

最后一步中 xnjuj=xnuj 是因为 uj 是一组正交基,只与 xn 中第 j 相乘不为0,所以二者是等价的。
Jbk=1N(xnkukbk)(uk)=0

1Nn=1NxTnkuk1Nn=1Nbk=0

1Nn=1NxTnuk1Nn=1Nbk=0

bk=x¯Tuk

所以最终可以得到 znj=xTnuj,j=1,...,M
bj=x¯Tuj,j=M+1,...,D

带入到公式2.4的 x~n 中,然后再计算 xnx~n 有:

xnx~n=i=M+1D{(xnx¯)Tui}ui

则有:
J=1Nn=1Ni=M+1D(xTnuix¯Tui)2=i=M+1DuTiSui

少了 u2i 是因为 uTiui=1 。所以我们的目标是最小化 Js.t.uTiui=1 ,用拉格朗日乘子法得到:
L(ui,λi)=i=M+1DuTiSui+i=M+1Dλi(1uTiui)

求导得: Sui=λiuiuTiSui=λi ,即 ui S 的特征向量,λi为对应的特征值。则对应的失真度
J=i=M+1Dλi

所以我们要丢弃特征值相对较少的那些基向量 ui 来进行降维,和前面的最大方差思想结果是一致的。

总之,要保留 S <script type="math/tex" id="MathJax-Element-7011">S</script>中特征值相对大的基向量,这样既能保证降维后的样本方差最大化;又能保证和原样本信息之间的损失最小化。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值