机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达, y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。f可能是显式的或隐式的、线性的或非线性的。使用降维的原因:

  • 压缩数据以减少存储量
  • 去除噪声的影响
  • 从数据中提取特征以便于进行分类
  • 将数据投影到低维可视空间,以便于看清数据的分布
  • 变量(特征)数量相对数据条数有可能过大,从而不符合某些模型的需求。打个比方,如果你有100条数据,却有200个特征,那么大多数的模型都回报错,提醒你变量(特征)数量太多

    由于以上的原因也是为了更好的理解数据,阅读数据的信息,通常会采用一些数据降维的办法对变量(特征)数目进行一定程度的缩减,在不丢失绝大多数信息的前提下尽可能的生成解释力更强的特征,同时去除不必要的特征。在很多算法中,降维算法成为了数据预处理的一部分。另外,有一些算法如果没有降维预处理,其实是很难得到很好的效果的。

降维算法分类 


降维的方法林林总总,在可视分析中很难一步到位使用不需要任何适配的降维方法。常见的做法是通过交互的方式,将标准的降维方法适配到具体的应用场景中。 从不同的角度入手可以有着不同的分类,主要分类方法有:

  • 根据数据的特性: 可以划分为线性降维非线性降维
  • 根据是否考虑和利用数据的监督信息:可以划分为无监督降维、有监督降维和半监督降维
  • 根据保持数据的结构:可以划分为全局保持降维局部保持降维全局与局部保持一致降维

  线性/非线性:

    线性降维是指通过降维所得到的低维数据能保持高维数据点之间的线性关系。线性降维方法主要包括:

  • 主成份分析 PCA (Principal Component Analysis)
  • 线性判别分析 LDA (Linear Discriminant Analysis)
  • 局部保留投影 LPP (Local Preserving Projection): LPP其实是Laplacian Eigenmaps的线性表示

非线性降维一类是基于核的,另一类就是通常所说的流形学习:从高维采样数据中恢复出低维流形结构(假设数据是均匀采样于一个高维欧式空间中的低维流形),即找到高维空间中的低维流形,并求出相应的嵌入映射。非线性流形学习方法有:

  • 等距映射 Isomap (Isometric Mapping)
  • 局部线性嵌入 LLE (Locally Linear Embedding)
  • 拉普拉斯特征映射
  • 局部切空间排列 LTSA (Local Tangent Space Alignment)
  • 最大方差展开 MVU (Maximum Variance Unfolding)

    整体来说,线性方法计算块,复杂度低,但对复杂的数据降维效果较差。

 监督/非监督

    监督式和非监督式学习的主要区别在于数据样本是否存在类别信息。

  • 非监督降维方法的目标是在降维时使得信息的损失最小,如PCA、LPP、Isomap、LLE、Laplacian Eigenmaps、LTSA、MVU;
  • 监督式降维方法的目标是最大化类别间的辨别信,如LDA。

事实上,对于非监督式降维算法,都有相应的监督式或半监督式方法的研究。

 全局/局部  

  • 局部方法仅考虑样品集合的局部信息,即数据点与临近点之间的关系。局部方法以LLE为代表,还包括Laplacian Eigenmaps、LPP、LTSA。
  • 全局方法不仅考虑样本几何的局部信息,和考虑样本集合的全局信息,及样本点与非临近点之间的关系。全局算法有PCA、LDA、Isomap、MVU。

    由于局部方法并不考虑数据流形上相距较远的样本之间的关系,因此,局部方法无法达到“使在数据流形上相距较远的样本的特征也相距较远”的目的。