PCA主成分分析

0.基本说明

        PCA主成分分析是一种数据降维(有损压缩)的方法,在尽量保持信息的情况下,尽量减少数据的维度。

1.PCA思想

        以二维为例,假设我们现在有一系列点,如下图所示:

        假设我们总共有n个点,每个点需要2个坐标值,存储代价为2n。现在我们考虑将所有点投影到L上,可以发现,相互距离大的点对在投影后依旧保持大距离,相互距离小的点对在投影后依旧保持小距离,而表达L我们可以用一个单位向量表示,所有的点投影到L上,相当于把L当作一个数轴,于是就可以量化所有点投影后对应的值,于是存储代价可以变为n(n个点的数值)+2(L在原空间下的方向单位向量):

        但是这样做很明显有一个问题,就是投影前后其实是存在差距的(A投影为A'后,在原二维空间上,投影前是OA,投影后是OA',存在误差OA-OA'=A'A),而我们要怎么选择L关键就在于如何让这部分误差最小,也就是信息损失最少,这部分误差我们称之为最小重构误差。

        我们来尝试推导一下:设U为L上的方向向量,简单起见设e=A‘A,OA=x,那么有

e=x-P_{rj}u=x-dot(x,u)u=x-(x^Tu)u;x,u\epsilon R^n,||u||=1,u^Tu=1

        由于向量很难描述,因此我们转而描述向量的模长,即

||e||^2=e^Te=[x-(x^Tu)u]^T[x-(x^Tu)u] \\=[x^T-(x^Tu)u^T][x-(x^Tu)u]\ \ \ \ \ \ (notion:x^Tu=u^Tx=R)\\=x^Tx-(x^Tu)(u^Tx)-x(x^Tu)u^T+(x^Tu)u(x^Tu)u^T \\=x^Tx-(x^Tu)(x^Tu)-(x^Tu)x^Tu+(x^Tu)(x^Tu)uu^T\ \ \ \ \ \ (notion:uu^T=1) \\=||x||^2-(x^Tu)^2-(x^Tu)^2+(x^Tu)^2 \\=||x||^2-(x^Tu)^2

        注意在上述推导中,要时刻记住u^Txx^Tu均是点积,结果是一个数,在矩阵的连续乘法子式中可以任意移动。

        即我们的目标就变成了:对于所有的原样本x_i,求解一个方向u,使得

min(\Sigma_{i=1}^n||x_i||^2-(x^Tu)^2)

2.样本点中心化

        中心化操作和均值化实际上是同一个意思,所谓中心化就是让样本各个维度的均值为0。如果缺少了这一步均值化我们看看会发生什么?首先需要明确的一点是,由PCA选出的主方向是一定要过原点的。因为向量本身只有方向和长度,所以我们必须要统一一个起点,最为方便和直观的自然就是原点。选其他点行不行?当然也是可以的,然而我们必须知道,这是一个统一的标准,即在所有的坐标系下都必须以这个原则为准。那既然是这样,为什么不干脆都选的简单些?

可以看到,主方向的方向向量其实是一致的,只是起点不一致而已,而在这种情况下,显然误差是被放大了的,因此中心化这一步必不可少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值