• 降维-主成分分析


      在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临得到严重障碍,被称为“维数灾难”。缓解维数灾难的一个重要途径是降维。也称“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维子空间,在这个子空间中样本密度大幅度提高,距离计算也变得更为容易。

      对降维效果的评估,通常是比较降维前后学习器的性能,若性能有所提高则认为降维起到了作用。若将维数降至二维或三维,则可通过可视化技术来直观地判断降维效果。

      维数降低技术包括:主成分分析,因子分析,典型相关分析,多维标度法,神经网络,流行学习等等。

    主成分分析:PCA

      是最常用的一种降维方法。利用正交变化把一系列可能线性相关的变量转换成一组线性不相关的新变量,也称为主成分,从而利用新变量在更小的维度下展示数据的特征。主成分是原有变量的线性组合,其数目不多于原始变量。组合之后,相当于我们获得了一批新的观测数据,这些数据的含义不用于原有数据,但包含了之前数据的大部分特征,并且有着较低的维度,便于进一步分析。

      在空间上,PCA可以理解为把原始数据投射到一个新的坐标系统,第一主成分为第一坐标轴,它的含义代表了原始数据中多个变量经过某种变换得到的新变量的变化区间;第二主成分为第二坐标轴,代表了原始数据中多个变量经过某种变换得到得到第二个新变量的变化区间。我们把利用原始数据解释样本的差异转变为利用新变量解释样本的差异。

      这种投射方式会有很多,为了最大限度保留对原始数据的解释,一般会用最大方差理论或最小损失理论,使得第一主成分有着最大的方差或变异数(就是说其能尽量多的解释原始数据的差异);随后的每一个主成分都与前面的主成分正交,且有着仅次于前一主成分的最大方差(正交简单的理解就是两个主成分空间夹角为90度,两者之间无线性关联,从而 完成去冗余操作)。   

                        

      首先考虑一个问题:对于正交属性空间上的样本点,如何用一个超平面(直线的高维推广)对所有样本进行恰当的表达?

      可以想到,若存在这样的超平面,那么它大概具有这样的性质:

      最近重构性:样本点到这个超平面的距离都足够近。即下图中所有红线(即投影造成的损失)加起来最小。

      最大可分性:样本点在这个超平面上的投影尽可能地分开,即下图中红线所示,需最大化投影点的方差。

     

     基于最近重构性和最大可分性分别得到主成分分析的两种等价推导。

    PCA算法总结:作为一个非监督学习的降维方法,它只需要特征值分解,就可以对数据进行压缩,去噪。因此在实际场景应用很广泛。为了克服PCA的一些缺点,出现了很多PCA变种,比如为解决非线性降维的KPCA,还有解决内存限制的增量PCA方法Incremental PCA,以及解决稀疏数据降维的PCA方法Sparse PCA等。

      优点:

      1. 仅仅需要以方差衡量信息量,不受数据集以外的因素影响。

      2. 各主成分之间正交,可消除原始数据成分间的相互影响的因素。

      3. 计算方法简单,主要运算是特征值分解,易于实现。

      缺点:

      1. 主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。

      2. 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

    核化线性降维---核主成分分析-KPCA:

      线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而,在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。非线性降维的一种常用方法,是基于核技巧对线性降维方法进行“核化”。

    补充阅读:

    流形学习:是一类借鉴了拓扑流形概念的降维方法。“流形”是在局部与欧式空间同胚的空间,换言之,它在局部具有欧式空间的性质,能用欧式距离来进行距离计算。这给降维方法带来了很大的启发:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但在局部上仍具有欧式空间的性质。因此,可以容易地在局部建立降维映射关系,然后再设法将局部映射关系推广到可视化。

    度量学习:在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。每个空间对应了样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量。---这个度量学习的基本动机。

  • 相关阅读:
    删除指定日期的文件
    pytorch加载数据集
    pytorch ResNet
    pytorch GoogLeNet
    pytorch实现VGG
    pytorch训练AlexNet
    序列化.Net对象到JSON
    c#对象序列化 用来保存对象数据
    Wpf设置listview样式
    wpf listview添加自增序号
  • 原文地址:https://www.cnblogs.com/CynthiaWendy/p/11029312.html
Copyright © 2020-2023  润新知