在高维情形下出现的数据样本稀疏、距离计算困难等问题,是全部机器学习方法共同面临获得严重障碍,被称为“维数灾难”。缓解维数灾难的一个重要途径是降维。也称“维数约简”,即经过某种数学变换将原始高维属性空间转变为一个低维子空间,在这个子空间中样本密度大幅度提升,距离计算也变得更为容易。算法
对降维效果的评估,一般是比较降维先后学习器的性能,若性能有所提升则认为降维起到了做用。若将维数降至二维或三维,则可经过可视化技术来直观地判断降维效果。网络
维数下降技术包括:主成分分析,因子分析,典型相关分析,多维标度法,神经网络,流行学习等等。机器学习
主成分分析:PCA函数
是最经常使用的一种降维方法。利用正交变化把一系列可能线性相关的变量转换成一组线性不相关的新变量,也称为主成分,从而利用新变量在更小的维度下展现数据的特征。主成分是原有变量的线性组合,其数目很少于原始变量。组合以后,至关于咱们得到了一批新的观测数据,这些数据的含义不用于原有数据,但包含了以前数据的大部分特征,而且有着较低的维度,便于进一步分析。性能
在空间上,PCA能够理解为把原始数据投射到一个新的坐标系统,第一主成分为第一坐标轴,它的含义表明了原始数据中多个变量通过某种变换获得的新变量的变化区间;第二主成分为第二坐标轴,表明了原始数据中多个变量通过某种变换获得获得第二个新变量的变化区间。咱们把利用原始数据解释样本的差别转变为利用新变量解释样本的差别。学习
这种投射方式会有不少,为了最大限度保留对原始数据的解释,通常会用最大方差理论或最小损失理论,使得第一主成分有着最大的方差或变异数(就是说其能尽可能多的解释原始数据的差别);随后的每个主成分都与前面的主成分正交,且有着仅次于前一主成分的最大方差(正交简单的理解就是两个主成分空间夹角为90度,二者之间无线性关联,从而 完成去冗余操做)。 spa
首先考虑一个问题:对于正交属性空间上的样本点,如何用一个超平面(直线的高维推广)对全部样本进行恰当的表达?blog
能够想到,若存在这样的超平面,那么它大概具备这样的性质:内存
最近重构性:样本点到这个超平面的距离都足够近。即下图中全部红线(即投影形成的损失)加起来最小。rem
最大可分性:样本点在这个超平面上的投影尽量地分开,即下图中红线所示,需最大化投影点的方差。
基于最近重构性和最大可分性分别获得主成分分析的两种等价推导。
PCA算法总结:做为一个非监督学习的降维方法,它只须要特征值分解,就能够对数据进行压缩,去噪。所以在实际场景应用很普遍。为了克服PCA的一些缺点,出现了不少PCA变种,好比为解决非线性降维的KPCA,还有解决内存限制的增量PCA方法Incremental PCA,以及解决稀疏数据降维的PCA方法Sparse PCA等。
优势:
1. 仅仅须要以方差衡量信息量,不受数据集之外的因素影响。
2. 各主成分之间正交,可消除原始数据成分间的相互影响的因素。
3. 计算方法简单,主要运算是特征值分解,易于实现。
缺点:
1. 主成分各个特征维度的含义具备必定的模糊性,不如原始样本特征的解释性强。
2. 方差小的非主成分也可能含有对样本差别的重要信息,因降维丢弃可能对后续数据处理有影响。
核化线性降维---核主成分分析-KPCA:
线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而,在很多现实任务中,可能须要非线性映射才能找到恰当的低维嵌入。非线性降维的一种经常使用方法,是基于核技巧对线性降维方法进行“核化”。
补充阅读:
流形学习:是一类借鉴了拓扑流形概念的降维方法。“流形”是在局部与欧式空间同胚的空间,换言之,它在局部具备欧式空间的性质,能用欧式距离来进行距离计算。这给降维方法带来了很大的启发:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去很是复杂,但在局部上仍具备欧式空间的性质。所以,能够容易地在局部创建降维映射关系,而后再设法将局部映射关系推广到可视化。
度量学习:在机器学习中,对高维数据进行降维的主要目的是但愿找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。每一个空间对应了样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量。---这个度量学习的基本动机。