当前位置: 代码迷 >> 综合 >> 关于降维((Dimensionality Reduction)
  详细解决方案

关于降维((Dimensionality Reduction)

热度:84   发布时间:2024-02-09 16:09:21.0

一、前言

????机器学习过程中都是根据特征进行学习,而每个机器学习的问题都可能包含成千上万的特征,训练时过多的特征数量会导致训练效率低下,这里引入了一个问题——维度灾难。

????维度灾难
这里通过一个例子进行说明:假设一个三维立方体边长为1,那么它的体积为1,而他的内接球体积为 4 3 π r 3 \dfrac{4}{3}\pi r^{3} ,其中r<1,而如果在高维空间(假设为K)中,高维立方体体积仍为1,但内接球体积变为 4 3 π r K \dfrac{4}{3}\pi r^{K} ,因为r<1,在K趋于∞时内接球体积趋近于0,也就是说,在高维空间中,数据样本大部分都分布在靠近边缘的地方。而且如果是在三维立方体中随机取两点的平均距离为0.52,而在1000000维的超立方体中,这一距离扩大到了408.25,这说明在高维空间中,数据不止存在分布位置不平衡问题,同时样本在高维空间中相较于低位空间更为稀疏,这样获取的训练结果用于预测测试集可信度极低,也就是过拟合的问题。这就是高维带来的维度灾难。
理论上通过增加训练样本集使其遍布高维空间可以解决这一问题,但由于高维呈指数级增长,所以通过增加训练样本不现实,因此需要降维来处理这一问题。

二、降维的作用

????1、首先的作用是可以降低计算开销。把数据的特征数量减少不仅可以去除冗余的无用的特征,还可以加快训练速度。
2、去除数据中的噪声、冗余信息。
3、便于可视化。一个拥有成百上千特征的数据集很难在图表中清晰的表现出数据集的特点,但当把他降维到低维时,数据变化就很明显可以看出数据间的关系。
4、随着特征数量的降低也会使数据所占用的空间减少,更便于储存。

三、几种降维方法介绍

????降维有多种方法:有直接降维即特征选择,人工对特征进行筛选后获得新的数据集,这种方式效率很低,只适合输入变量少的情况;还有线性映射方法:如PCA、LDA等;还有非线性方法:如KPCA、基于神经网络的方法、流形学习等。

3.1 PCA(Principal Component Analysis)

????主成分分析(PCA)是十分常用的一种降维方法,从字面意思看是通过找到数据中主要的特征然后删去其余的作用小的特征来实现降维。
在高维图像中,让数据集映射在一个低维超平面上可以从两个方面看:
最小重构性:即样本点到超平面的距离足够近。
最大可分性:样本点映射到投影平面尽可能分散。
通过对以上两个方面分析,可以得到主成分分析的两个等价推导,首先看最小重构性。
首先假设数据样本已经进行了中心化,即 x i = 0 \sum x_{i}=0 ,然后假设映射的超平面坐标系为{ w w 1 w w 2 w w 3,……, w w d},其中 w w i为标准正交基向量,由于原维度为d维,若需减少到d’维,则目标结果即 x x i在低维的投影结果应该是 z z i={zi1,zi2,……,zid’},其中zij= w w iT x x i,表示 x x i在第j维的坐标,最后可以得到重构的样本 x ^ \widehat{x} i,原样本与重构之后的样本的距离公式这里不再进行叙述,结果与-tr(WT(XXT)W)成正比,因此看最小重构性可以看min{-tr(WT(XXT)W)},其中WTW= I I 。W={ w w 1 w w 2 w w 3,……, w w d},协方差为 i x i x i T \sum _{i}x_{i}x_{i}^{T}
然后看最大可分性,使样本点在数据空间中尽可能分散,即投影后样本点的方差最大化。投影后样本点的协方差矩阵为 i W T x i x i T W \sum _{i}W^{T}x_{i}x_{i}^{T}W 。则优化目标可变为max{tr(WT(XXT)W)},其中WTW= I I
可以看出,两者结果等价。
对两式任一做拉格朗日乘子法,可以得到结果XXT w w i= λ λ i w w i。所以,只要对协方差矩阵XXT进行特征值分解,将求得的特征值排序然后取前d’个即可得到对应特征向量组成的W*,即降维后的对应解。
PCA的d’值一般是由用户提前指定,或者通过一些开销小的学习器获得。
使用PCA处理后会舍弃一部分特征,舍弃这部分特征的优势可以总结如下:
1、使原本高维的数据映射到低维空间,增加了样本密度,并且降低了计算开销。
2、因为在选择特征值时进行了排序,后面被舍弃的往往与噪声有关,将他们舍弃往往一定程度上有去噪的效果。

3.2 LDA(Linear Discriminant Analysis)

????LDA与PCA最大的不同是LDA是监督学习。LDA对数据集的每个样本都有类别输出,而PCA是无类别输出的。LDA的思想是使得投影后的类内方差最小,类间方差最大,即能最大程度的将数据按类分开。如下图,右边的映射结果就优于左边。
在这里插入图片描述
为了使得类内数据离得近,类间离得远,LDA分别计算类内分散程度Sw和类间分散程度Sb,寻找 S w S b \dfrac{S_{w}}{S_{b}} 的最大值,这样的结果即满足类内方差最小,类间方差最大。
然后计算使得 S w S b \dfrac{S_{w}}{S_{b}} 最大的d个特征值和对应的特征向量,得到投影矩阵W,然后对样本特征 x x i进行变换得到新的样本特征 z z i=WT x x i

????LDA优缺点:
优点:
1、由于LDA为监督学习,可以使用类别的先验知识经验。
2、LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。
缺点:
1、LDA和PCA都不适合对非高斯分布样本进行降维。
2、LDA降维最多降到类别数k-1的维度。但现有进阶版LDA可以跳过这个问题。
3、LDA样本分类信息依赖方差而不是均值的时候降维效果不好。
4、LDA可能过拟合数据。

3.3 KPCA(Kernel PCA)

????由前面的介绍可知PCA只能处理线性可分的数据的降维,对于非线性的数据,则无法使用。KPCA的思想即为引入核函数,数据在低位空间线性不可分但映射到高维空间就可以变为线性可分的数据。所以KPCA先将原数据经过核函数映射到高维空间使其线性可分,然后利用PCA算法进行降维。
核函数的便利在于核函数可以直接得到低维数据映射到高维之后的内积,可以忽略映射函数。从3.1对PCA的说明可以看出,我们需要的是协方差矩阵XXT,而核函数是XTX。因此需要进行一定的变换。
假设原数据x经过映射函数Φ(x)映射到高维空间,那么经过同PCA的一系列计算,得到协方差矩阵和特征向量如下图所示
在这里插入图片描述
由于空间中任一向量都可以由该空间的所有样本线性表示,因此可以对wi进行转化。令 w i = k = 1 N α i ? ( x i ) = ? ( X ) α w_{i}=\sum ^{N}_{k=1}\alpha _{i}\phi \left( x_{i}\right) =\phi \left( X\right) \alpha ,代入上式并左乘一个Φ(x)T,化简最终得 K α = λ i α Kα = λ_{i}α 。这里的K即为核函数的内积结果构成的核矩阵。接下来就可以按PCA之后的步骤求K得最大的几个特征值和对应的特征向量然后获得最终所需矩阵。
由于KPCA需要对所有样本求和,因此他的计算开销较大。

3.4 流形学习(Manifold Learning)

????简介
流形学习借鉴了拓扑流形概念。“流形“是指局部具有欧式空间性质的空间,也就是说,在局部可以使用欧式距离来做距离计算。流形学习的目的同样是将一组高维空间中的数据重新表示在低维空间中。由于当数据降至二维或三维时可以实现可视化,因此流形学习也可用于数据样本的可视化。

????Isomap
Isomap可以说是MDS得改进版,MDS映射之后低维空间的距离等于高维空间中的欧式距离,但Isomap使用的是测地线距离代替欧式距离。
测地线距离:看下图,测地线距离可以理解为红线,即两点在曲面上的最短距离,这里可以看出,如果用欧式距离,则欧式距离显然比测地距离短。
在这里插入图片描述
Isomap的思想为使用两点间的测地线距离作为几何描述,然后用MDS保持点与点之间的最短距离。而计算测地线距离的方法,就要用到”流形“局部具有欧式空间的性质,对每个点基于欧式距离找出其近邻点,得到近邻连接图,然后根据获取的近邻连接图,计算两点之间的最短路径,这里可以使用经典算法dijkstra或者floyd,获得的最短路径就是近似的测地线距离。然后利用MDS算法获取样本在低维空间的坐标。实现高维到低维的转换。

????LLE(Locally Linear Embedding)
LLE与Isomap的不同在于,Isomap考虑了全局的几何关系(任意两点的测地线距离),而LLE只考虑保持局部的关系。
由于一个流形在很小的邻域中是满足欧式空间的性质的,即局部线性,因此在小的局部邻域中,一个点可以用邻域中其他点线性表示,这种局部表示也可以实现降维后几何性质的保持。LLE整个过程就是在构建邻域图之后,将每个邻域中的点用邻域中其他点表示出来并寻找误差最小的权重,邻域外的点对其没有影响。获得权重后再通过最小化误差获取xi在低维空间中合适的映射坐标zi
由于Isomap考虑了全局信息,任意两点的关系都要考虑,那么随着数据点数量的增加,Isomap的计算复杂度会指数级增长,因此LLE这类局部分析方法及相关改进版本相比之下计算负担会小而且效果相当。

参考材料

《机器学习》 周志华 著
流形学习
KPCA非线性降维与核函数
线性判别分析LDA