1.例子引入
如图所示,我们要将两类点(红点和蓝点)分类,希望能先通过降维之后再分类(直接分肯定也能分开)。那么我们需要将二维的数据(每个点包含横坐标和纵坐标,是二维的)降维到一维直线上的点。
我们可以有多种降维的策略,通过将二维平面上的点映射到一维直线上,如上图所示就是两种映射方法:左边是投影到向量 u1 上,右边是投影到向量 u2 上。显然左边的投影能让数据分的更加散,能更好的进行分类;而右边的投影使得数据比较集中,不利于分类;所以左边的投影效果要比右边的要好。
PCA的核心思想就是对数据进行降维,并且使得降维后的样本相对之间比较分散,也就是降维后的样本的方差尽可能大;并且还要保证降维后的数据与原来样本的差异性尽可能的小,即降维后的数据的均方误差尽可能的小。但这种样本尽可能的分散也不是绝对的好,这也意味着PCA并不是万能的,仅仅对某些类型的数据有效,具体是哪一类我也忘了(sorry)。
2.PCA
主成分分析(Principal Component Analysis, PCA),将原有众多具有一定相关性的指标重新组合成一组少量互相无关的综合指标 。将原始的数据由高维度转化为低维度,目标有两个:1.使得降维后的样本的方差尽可能的大;2.使得降维后的数据的均方误差尽可能的小。
最大方差思想:使用较少的数据维度保留住较多的原数据特性
假设将
D
维数据集
首先考虑
现在我们要让降维后的样本的方差尽可能的大,即:
其中 S=1N∑Nn=1(xn−x¯)(xn−x¯)T ,是原样本的方差。
我们的目标是最大化
uT1Su1,s.t.uT1u1=1
,带约束条件的求极值问题要用朗格朗日乘子法,构造拉格朗日函数如下:
其中 λ1 表示拉格朗日乘子,是一个正数。对 u1 求导置0得, Su1=λ1u1 ,也就是 u1 是 S 的特征向量,进一步得到
考虑更一般的情况(M>1),新空间中数据方差最大的最佳投影方向由协方差矩阵S的M个特征向量
{u1,...,uM}
定义,其分别对应M个最大的特征值
{λ1,...,λM}
。首先获得方差最大的1维,生成该维的补空间;继续在补空间中获得方差最大的1维,生成新的补空间;依次循环下去得到M维的空间。简而言之就是要获取
S
的前
最小均方误差思想:使原数据与降维后的数据( 在原空间中的重建) 的误差最小
定义一组正交的D维基向量
即用一组新的 D 维基向量来表示原
将公式2.2带入到公式2.1中,可以得到:
假设在新生成的D维度空间中,前M维表示样本独特的信息,后(D-M)维表示样本间共享的信息,则任意一个样本进行坐标变换后,生成的样本可以用 x~n 来表示:
因为前 M 维是表示样本独特的信息,每个样本在前
假设源样本 Xn 的D维表示为:
经过向量 ui 的坐标变换表示为:
而再用M维变量采用独特的和共享的信息表示为:
进行坐标变换是为了能够找到最佳的适合用来降维的方向,而分成独特信息和共享信息是为了方便只保留独特信息进行降维。所以我们的目标是要让坐标变换后的数据和分成独特信息和共享信息的数据之间信息损失最小,这样就可以解除 ui ,即那个适合降维的方向。
所以我们的目标是要让变换后的信息和原样本信息损失最少,即让
其中 xn 和 x~n 分别表示经过坐标变换后的数据和经过区分独特信息和共享信息处理后的数据。将 (表示2) 和 (表示3) 带入,可得
所以我们需要找到使得 J 最小的
最后一步中 xnjuj=xnuj 是因为 uj 是一组正交基,只与 xn 中第 j 相乘不为0,所以二者是等价的。
所以最终可以得到
znj=xTnuj,j=1,...,M
bj=x¯Tuj,j=M+1,...,D
带入到公式2.4的
x~n
中,然后再计算
xn−x~n
有:
则有:
少了 u2i 是因为 uTiui=1 。所以我们的目标是最小化 Js.t.uTiui=1 ,用拉格朗日乘子法得到:
求导得: Sui=λiui⇒uTiSui=λi ,即 ui 是 S 的特征向量,
所以我们要丢弃特征值相对较少的那些基向量 ui 来进行降维,和前面的最大方差思想结果是一致的。
总之,要保留 S <script type="math/tex" id="MathJax-Element-7011">S</script>中特征值相对大的基向量,这样既能保证降维后的样本方差最大化;又能保证和原样本信息之间的损失最小化。