主成分分析,或者成为PCA,是一种被广泛使用的技术,应用领域包括维度降低,有损数据压缩,特征抽取,数据可视化。有两种PCA的定义方式,我们这里主要介绍第一种定义方式,即数据在低维空间上的投影,使得投影方差最大化。
PCA原理
假设我们有数据集合 ,n = 1...N,我们要把它投影到一个M维的低维空间当中去(M<N)。为了达到这个目的,我们首先要对数据做归一化,使得数据在每个维度上均值为0,方差为1,这样保证了每一个不同的维度都可以得到相同“力度”的处理。
我们先来考虑第一个维度M=1,假设数据需要投影在方向为的向量上(我们在此规定
),易得,x_n投影到u_1上的长度为
则投影的方差为:
这里被称之为数据的协方差矩阵。如此,原始问题转化为了一个最优化问题:
我们使用拉格朗日乘数法:
对该式求最大化,可以得到
到此我们可以看出 \lambda_1是S特征值,而u_1是对应的特征向量。那么我们在式子左边u_1转置,可以得到:
也就是lambda_1就是我们要求的数据协方差,使之最大,取S的最大特征值即可。
我们可以⽤⼀种增量的⽅式定义额外的主成分,⽅法为:在所有与那些已经考虑过的⽅向正
交的所有可能的⽅向中,将新的⽅向选择为最⼤化投影⽅差的⽅向。如果我们考虑M维投影
空间的⼀般情形,那么最⼤化投影数据⽅差的最优线性投影由数据协⽅差矩阵S的M个特征
向量u1... uM定义,对应于M个最⼤的特征值λ1... λM。可以通过归纳法很容易地证明出
来。
关于PCA原理以及其应用,其实还有很多可以讲,包括PCA的另外一种解释,高维数据PCA的计算技巧,PCA数据压缩,以及贝叶斯PCA等等,时间关系在此无法展开,有时间会补上
参考资料
[1] A Tutorial on Principal Component Analysis
[2] prml
[3] CS229 吴恩达