降维——PCA和LDA

简介

所有机器学习方法共同面临的,在高维情况下出现的数据样本稀疏、距离计算困难等问题,被称为“维度灾难”,李航老师在他的博客《机器学习新动向:从人机交互中》中提到,学习精度越高,学习确信度越高,学习模型越复杂,所需要的样本也就越多。特征太多会造成模型复杂,缓解这一问题的一个重要途径是降维,将原高维空间中的数据点映射到低维的空间。

降维

原始高维空间数据表示中包含冗余以及噪音信息,而降低准确率,通过降维减少冗余信息,提高精度。基于线性变换来进行降维的方法称为线性降维方法,通过对变换矩阵施加不同的约束,对低维子空间的性质的不同要求,可以得到多种线性降维方法。
对降维效果的评估,通常是比较降维前后学习器的性能,若性能有所提高,则认为降维起作用了。若维度降至二或三维,则可以通过可视化技术直观地判断降维效果。

PCA

目标:逐个寻找超平面,将样本投射到这个超平面后使得各样本点间方差最大。

若存在这样的超平面,那么它大概要具有的性质:
最近重构性,样本点到这个超平面的距离都足够近;
最大可分性,样本点在这个超平面上的投影能尽可能分开。

PCA追求的是在降维后能够最大化保持数据内在信息,并通过衡量在投影方向上的数据方差的大小来衡量该方向的重要性。

算法:


输入:样本数据集D={x1,x2,…,xm};
: 低维空间维度d’

输出:变换矩阵W=(w1,w2,…,wd’)
过程:

  1. 对所有样本进行中心化;
  2. 计算样本的协方差矩阵XXT
  3. 对协方差矩阵XXT做特征值分解;
  4. 取最大的d’个特征值所对应的特征向量w1,w2,…,wd’.

决定降维维度/主成分个数
用户指定;
重构角度设定阈值;
不同d’维空间+学习器(开销较小)进行交叉验证选取;

不要盲目PCA,当在原数据有了一个比较好的结果,想进一步提升速度时可考虑PCA。

LDA

目标:找到一个超平面,样本点映射在超平面使得相同类别点尽可能靠近,不同类别数据尽可能远。

PCA是无监督线性降维方法,LDA是有监督的线性降维方法。

区别:如下图中两堆点是两类的话,LDA会选择轴1,PCA会是轴2
pca

核化线性降维

非线性降维常用的方法,是基于核技巧对线性降维方法进行“核化”,将原数据映射到高维特征空间,再在特征空间实施降维。

参考文献:

  1. 李航,《机器学习新动向:从人机交互中》
  2. 周志华,《机器学习》
分享