PCA 和 KPCA理解
前言
本文中的数据样本都是去中心化的,即可以理解为均值为0。
PCA
本例中是从二维降到一维
PCA的作用与要求
PCA是用于降维的一种方法,在降维后尽可能的保留样本最大的特征,即保证降维后方差最大化。
如下图例子所示所有样本,映射在蓝色的直线上(从二维降到一维),分布最广(用数学语言,就是映射在直线上的样本方差最大化)。
PCA中方差的表达
既然要求降维后方差要最大,首先我们得表示出降维后的方差表达,然后用最优化手段,将其最大化,即找出最优解。
第一步 映射后的样本坐标
上图中将第一幅图的其中一个样本,和那条降维后的线单独拿出来,进行剖析。
我们需要表达出样本xj在降维后的坐标,通过高中向量知识可以很容易得出红色向量的长度为||xj||*cosθ,方向为v/||v||。假设v是一个单位向量,式子可以化简为<xj,v>v,前面的内积用线性代数表示就是<xj,v> = (xj)的转置乘上v,后面的v因为是单位正向量所以只是用于区分方向。
到这一步,我们可以表达出降维后的坐标了: vT(xj)(这是一个标量)
需要注意的是化简到这一步有一个条件那就是||v||=1。
得出下图:
第二步 得出方差表达式
既然有了坐标,我们就可以表达出样本方差并化简成:
最优化问题:求方差最大值时的v
得到了方差后,就需要求出 在条件 ||v|| = 1 下 (此条件等价于 vT * v = 1),方差最大。所以引入拉格朗日乘子法:
变成解这个式子:
好巧不巧的是 :因为我们是要求(vT)Cv的max 由上式可知 Cv = λv,所以就是求(vT)λv = (vT)vλ的最大值,更巧的是 (vT)v TM的 等于 1,所以上面就成了求(vT)vλ=λ的最大值。
其中C是样本的协方差矩阵,该问题就转变为求C的最大特征值和其特征向量(单位化),对应降维的坐标则是:vT(xj)
PCA例子
以防不懂举个例子,比如我每个样本特征是二维的,一共三个样本:
X1=[1,2]T, X2=[3,4]T, X3=[5,6]T
C经过计算应该是[35 44] /2 肯定是2*2矩阵,降到一维 就取最大特针值对应的特征向量,在单位化。
[44 56]
如果说三维降到二维就取前两项大的大特针值对应的特征向量。[(v1)T] * xj 第一个是23 矩阵 第二个是31
[(v2)T]
算出来的就是二维了。