主成分分析(Principal components analysis)

PCA(Principal Component Analysis)不仅仅是对高维数据进行降维,更重要的是经过降维去除了噪声,发现了数据中的模式。PCA把原先的n个特征用数目更少的m个特征取代,新特征是旧特征的线性组合,而不是简单地从n维特征中去除其余n-k维特征。这些线性组合最大化样本方差,尽量使新的m个特征互不相关。从旧特征到新特征的映射捕获数据中的固有变异性。


PCA的理论意义:

PCA将n个特征降维到k个,可以用来进行数据压缩,如果100维的向量最后可以用10维来表示,那么压缩率为90%。同样图像处理领域的KL变换使用PCA做图像压缩。但PCA要保证降维后,还要保证数据的特性损失最小。再看回顾一下PCA的效果。经过PCA处理后,二维数据投影到一维上可以有以下几种情况:
这里写图片描述
我们认为左图好,一方面是投影后方差最大,一方面是点到直线的距离平方和最小,而且直线过样本点的中心点。为什么右边的投影效果比较差?直觉是因为坐标轴之间相关,以至于去掉一个坐标轴,就会使得坐标点无法被单独一个坐标轴确定。

PCA得到的k个坐标轴实际上是k个特征向量,由于协方差矩阵对称,因此k个特征向量正交。看下面的计算过程。

假设我们还是用X(i)(X1(i),X2(i),….,Xn(i))来表示样例,m个样例,n个特征。特征向量为e,e1(i)表示第i个特征向量的第1维。那么原始样本特征方程可以用下面式子来表示:
这里写图片描述

简写为:Ae = λe

我们最后得到的投影结果是AE,E是k个特征向量组成的矩阵,展开如下:
这里写图片描述

得到的新的样例矩阵就是m个样例到k个特征向量的投影,也是这k个特征向量的线性组合。e之间是正交的。从矩阵乘法中可以看出,PCA所做的变换是将原始样本点(n维),投影到k个正交的坐标系中去,丢弃其他维度的信息。


PCA的计算过程

1.特征中心化(数据标准化)。

这里写图片描述

如果任意两个不同的变量之间量级均存在可比较性,可移除3、4两步的处理。

2.求特征协方差矩阵

样本X和样本Y的协方差(Covariance):

这里写图片描述
协方差为正时说明X和Y是正相关关系,协方差为负时X和Y是负相关关系,协方差为0时X和Y相互独立。

Cov(X,X)就是X的方差(Variance).

当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵),方阵的边长是Cn2。比如对于3维数据(x,y,z),计算它的协方差就是:
这里写图片描述

由于已经让每个字段均值为0,则:

这里写图片描述
由于已经让每个字段均值为0(特征中心化的意义之一),则:
可以看到,在字段均值为0的情况下,两个字段的协方差简洁的表示为其内积除以元素数m。

3.求协方差的特征值和特征向量

AX = λX,自行计算特征值特征向量即可。

4.将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

5.Y=PX即为降维到k维后的数据

从两种角度来理解PCA

最大方差理论

在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。
因此我们认为,最好的k维特征是将n维样本点转换为k维后,每一维上的样本方差都很大。
这里写图片描述
假设我们选择两条不同的直线做投影,那么左右两条中哪个好呢?根据我们之前的方差最大化理论,左边的好,因为投影后的样本点之间方差最大。(已知,原点在新的坐标系下依然是原点,可以认为基起于原点)

上图十字点表示样本点X(i),实线用u(u1,u2,…un,)T,实心黑点表示样本点在u上的投影。投影离原点的距离< XT,u >由于这些样本点(样例)的每一维特征均值都为0,因此投影到u上的样本点(只有一个到原点的距离值)的均值仍然是0。

由于投影后均值为0,因此方差为:
这里写图片描述

用λ来表示这里写图片描述,A表示这里写图片描述,那么上式写作

λ = uT A u

由于u是单位向量,可得:
A u = λ u

最小平方误差理论

这里写图片描述

假设有这样的二维样本点(红色点),回顾我们前面探讨的是求一条直线,使得样本点投影到直线上的点的方差最大。本质是求直线,那么度量直线求的好不好,不仅仅只有方差最大化的方法。说道拟合直线,最开始的线性回归做的就是这个,目的也是求一个线性函数使得直线能够最佳拟合样本点,那么我们能不能认为最佳的直线就是回归后的直线呢?回归时我们的最小二乘法度量的是样本点到直线的坐标轴距离。比如这个问题中,特征是x,类标签是y。回归时最小二乘法度量的是距离d。如果使用回归方法来度量最佳直线,那么就是直接在原始样本上做回归了,跟特征选择就没什么关系了。

在这里,我们打算选用另外一种评价直线好坏的方法,使用点到直线的距离d’来度量。

现在有n个样本点(X1,X2,…Xn,),每个样本点为m维(这节内容中使用的符号与上面的不太一致,需要重新理解符号的意义)。将样本点Xk,在直线上的投影记为Xk,那么我们就是要最小化
这里写图片描述d’2 = 这里写图片描述(||Xk-Xk||)2

而确定一条直线,一般只需要确定一个点,并且确定方向即可。

确定点:

假设要在空间中找一点X0来代表这n个样本点,“代表”这个词不是量化的,因此要量化的话,我们就是要找一个m维的点X0,
Min J0(X0) = 这里写图片描述(||X0-Xk||)2

假设m为n个样本点的均值:
m =( 这里写图片描述Xk)/n

J0(X0) 可以写做:
这里写图片描述

上式在X0 = m时取到最小值。

确定方向:
我们从X0拉出要求的直线(这条直线要过点m),假设直线的方向是单位向量e。那么直线上任意一点,比如Xk就可以用点m和e来表示:

Xk = m + ake (其中ak是Xk到m的距离)

令,并求Min J1(a0,a1…an,e) = 这里写图片描述(||Xk-Xk||)2 = 这里写图片描述|(m + ake)-Xk|2
这里写图片描述

此时,对ak求偏导:

ak = e(xk - m)

再对e求偏导数,我们先将上式代入J1,得
这里写图片描述

其中这里写图片描述 与协方差矩阵类似,只是缺少个分母n-1,我们称之为散列矩阵(scatter matrix)。

然后可以对e求偏导数,但是e需要首先满足eTe = 1,引入拉格朗日乘子λ,来使eTSe最大(J1最小),令:

u = eTSe - λ(eTe - 1)

这里写图片描述

这里存在对向量求导数的技巧,方法这里不多做介绍。可以去看一些关于矩阵微积分的资料,这里求导时可以将eTSe看作是Se2,将eTe看做是e2
导数等于0时,得

Se = λe

两边除以n-1就变成了对协方差矩阵求特征值向量。

总结与讨论:

PCA技术的一大好处是对数据进行降维的处理。我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。

PCA技术的一个很大的优点是,它是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。

但是,这一点同时也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。
这里写图片描述
图表 5:数据的分布并不满足高斯分布,呈明显的十字星状。
这种情况下,方差最大的方向并不是最优主元方向。

另外PCA还可以用于预测矩阵中缺失的元素。

参考博客:

http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020216.html
http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html
http://blog.codinglabs.org/articles/pca-tutorial.html
http://www.cnblogs.com/zhangchaoyang/articles/2222048.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值