PCA

 

主成分分析(PCA)思想总结

  1. PCA就是将高维的数据通过线性变换投影到低维空间上去。
  2. 投影思想:找出最能够代表原始数据的投影方法。被PCA降掉的那些维度只能是那些噪声或是冗余的数据。
  3. 去冗余:去除可以被其他向量代表的线性相关向量,这部分信息量是多余的。
  4. 去噪声,去除较小特征值对应的特征向量,特征值的大小反映了变换后在特征向量方向上变换的幅度,幅度越大,说明这个方向上的元素差异也越大,要保留。
  5. 对角化矩阵,寻找极大线性无关组,保留较大的特征值,去除较小特征值,组成一个投影矩阵,对原始样本矩阵进行投影,得到降维后的新样本矩阵。
  6. 完成PCA的关键是——协方差矩阵。 协方差矩阵,能同时表现不同维度间的相关性以及各个维度上的方差。 协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。
  7. 之所以对角化,因为对角化之后非对角上的元素都是0,达到去噪声的目的。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。所以我们只取那些含有较大能量(特征值)的维度,其余的就舍掉,即去冗余。

图解PCA核心思想

PCA可解决训练数据中存在数据特征过多或特征累赘的问题。核心思想是将m维特征映射到n维(n < m),这n维形成主元,是重构出来最能代表原始数据的正交特征。

假设数据集是m个n维,$(x^{(1)}, x^{(2)}, \cdots, x^{(m)})$。如果n=2,需要降维到$n'=1$,现在想找到某一维度方向代表这两个维度的数据。下图有$u_1, u_2$两个向量方向,但是哪个向量才是我们所想要的,可以更好代表原始数据集的呢?PCA

从图可看出,$u_1$比$u_2$好,为什么呢?有以下两个主要评价指标:

  1. 样本点到这个直线的距离足够近。
  2. 样本点在这个直线上的投影能尽可能的分开。

如果我们需要降维的目标维数是其他任意维,则:

  1. 样本点到这个超平面的距离足够近。
  2. 样本点在这个超平面上的投影能尽可能的分开。

PCA算法推理

下面以基于最小投影距离为评价指标推理:

假设数据集是m个n维,TODO,且数据进行了中心化。经过投影变换得到新坐标为TODO,其中TODO是标准正交基,即TODO,TODO。经过降维后,新坐标为TODO,其中TODO是降维后的目标维数。样本点TODO在新坐标系下的投影为TODO,其中TODO是TODO在低维坐标系里第j维的坐标。如果用TODO去恢复TODO,则得到的恢复数据为TODO,其中TODO为标准正交基组成的矩阵。

考虑到整个样本集,样本点到这个超平面的距离足够近,目标变为最小化TODO。对此式进行推理,可得: TODO

在推导过程中,分别用到了TODO,矩阵转置公式TODO,TODO,TODO以及矩阵的迹,最后两步是将代数和转为矩阵形式。 由于TODO的每一个向量TODO是标准正交基,TODO是数据集的协方差矩阵,TODO是一个常量。最小化TODO又可等价于

TODO

利用拉格朗日函数可得到 TODO

对TODO求导,可得TODO,也即TODO。 是TODO个特征向量组成的矩阵, 为TODO的特征值。TODO即为我们想要的矩阵。 对于原始数据,只需要TODO,就可把原始数据集降维到最小投影距离的TODO维数据集。

基于最大投影方差的推导,这里就不再赘述,有兴趣的同仁可自行查阅资料。

PCA算法流程总结

输入:TODO维样本集TODO,目标降维的维数TODO。

输出:降维后的新样本集TODO。

主要步骤如下:

  1. 对所有的样本进行中心化,TODO。
  2. 计算样本的协方差矩阵TODO。
  3. 对协方差矩阵TODO进行特征值分解。
  4. 取出最大的TODO个特征值对应的特征向量TODO。
  5. 标准化特征向量,得到特征向量矩阵TODO。
  6. 转化样本集中的每个样本TODO。
  7. 得到输出矩阵TODO。 :在降维时,有时不明确目标维数,而是指定降维到的主成分比重阈值TODO。假设TODO个特征值为TODO,则TODO可从TODO得到。

PCA算法主要优缺点

优缺点 简要说明
优点 1. 仅仅需要以方差衡量信息量,不受数据集以外的因素影响。 2.各主成分之间正交,可消除原始数据成分间的相互影响的因素。3. 计算方法简单,主要运算是特征值分解,易于实现。
缺点 1.主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。2. 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。