今天看了关于主成分分析算法,然后加上自己的理解写成笔记,作为以后复习的资料。
主成分分析是通过减少一定的精度来减少数据的维度,而这里主要的目标是怎么在给定的需要减少的维度的条件下,使得精度下降的最少。主成分分析法是通过寻找数据的主要特征,减少维度。目前主要的方法有最大化方差法和最小化平方误差,这两种方法从不同的两种角度去分析这个问题,首先看最大化方差法:
最大化方差法的只要思想是最大化数据在某一个方向上的方差,而这个方向就是主成分对应的方向。为了便于计算,我们假设这个方向为单位方向向量w,假设我们有样本数据,都是列向量, 为了便于计算将样本进行中心化得到,
。我们先算样本
在w上的投影长度,得到
,这样我们就能得到所有样本在w上投影的方差:
这样问题就转化为带约束的优化问题:
引入拉格朗日乘子得到:
对w求导得到,所以
。通过分析,我们可以看出,我们寻找的最大主成分的方向向量为样本的协方差矩阵最大特征值对应的特征向量。如果我们需要将样本降到d维的空间,则可以求出样本协方差矩阵,然后将特征值进行排序,然后将前d个特征值对应的特征向量求出得到转化矩阵,这样就能得到降维后的样本。
下面是另一种方法,这种方法从另一个角度来分析这个问题,与上面寻找一个方向不同,然后根据所有方向确定绛维后的超平面,这种方法是直接寻找超平面,然后通过最小化样本到超平面的距离来得到最优的超平面。于是我们可以得到所有样本到超平面的距离为:
这里的表示
在超平面上的投影向量,假设超平面有d个标准正交基组成
,d为绛维后的维度。现在,我们需要求解出样本在超平面的投影向量
,可以通过求出
在每一个基上的投影,然后将这些投影相加就能得到
在由这些基组成的超平面的投影向量
跟上面方法一样,我们将问题转化为带约束的优化问题:
这里我们是最小化距离的平方,便于后面的计算。先来求解优化目标
通过上面的式子可以得到:
因为当时,
,当
时,
,所以上面的式子可以写成:
结合上面的式子,可以得到:
因为为一个常数,对优化结果没有影响,所以优化问题转化为:
最后就和前面第一种方法的求解达到一致,我们依次求解W中的每一个分量时,就是上面的最大化方差的方法,虽然两种方法考虑的角度不一样,但是最终的结果都化为求解带约束的优化问题。