机器学习---降维方法

1.PCA

介绍

主成分析(PCA):将高纬的特征向量合并称为低纬度的特征属性,是一种无监督 的降维方法。 算法目标是通过某种线性投影,将高维的数据映射到低维的空间中表 示,并且期望在所投影的维度上数据的方差最大(最大方差理论),以此使用较 少的数据维度,同时保留较多的原数据点的特性。

äºç»´æ°æ®çPCAéç»´

  • 线性变换=>新特征轴可由原始特征轴线性变换表征
  • 线性无关=>构建的特征轴是正交的
  • 主要线性分量(或者说是主成分)=>方差加大的方向
  • PCA算法的求解就是找到主要线性分量及其表征方式的过程

数学原理

我们希望投影后投影值尽可能分散,而这种分散程度,可以用数学上的方差来表述。

 

 

即寻找一个一维基,使得所有数据变换为这个基上的坐标表示后,方差值最大。

对于更高维度,还有一个问题需要解决,考虑三维降到二维问题。与之前相同,首先我们希望找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择,继而我们选择第二个投影方向。如果我们还是单纯只选择方差最大的方向,很明显,这个方向与第一个方向应该是“几乎重合在一起”,显然这样的维度是没有用的,因此,应该有其他约束条件——就是正交

数学上可以用两个字段的协方差表示其相关性:

当协方差为0时,表示两个字段线性不相关。

PCA的优化目标是:
将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大。

算法步骤

设有m条n维数据。

1)将原始数据按列组成n行m列矩阵X

2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值

3)求出协方差矩阵

4)求出协方差矩阵的特征值及对应的特征向量

5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

6)即为降维到k维后的数据

优点:

  • 它是无监督学习,完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。
  • 用PCA技术可以对数据进行降维,同时对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。
  • 各主成分之间正交,可消除原始数据成分间的相互影响。
  • 计算方法简单,易于在计算机上实现。

缺点:

  • 如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。
  • 贡献率小的主成分往往可能含有对样本差异的重要信息。
  • 特征值矩阵的正交向量空间是否唯一有待讨论。
  • 在非高斯分布的情况下,PCA方法得出的主元可能并不是最优的,此时在寻找主元时不能将方差作为衡量重要性的标准。

2.kPCA

PCA本质上是将方差最大的方向作为主要特征,并且在各个正交方向上将数据“离相关”,也就是让它们在不同正交方向上没有相关性。因此,PCA也存在一些限制,例如它可以很好的解除线性相关,但是对于高阶相关性就没有办法了,对于存在高阶相关性的数据,可以考虑Kernel PCA,通过Kernel函数将非线性相关转为线性相关。

3.LDA

                LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。

优点

  • 在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识;
  • LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优;

缺点

  • LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
  • LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题;
  • LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好;
  • LDA可能过度拟合数据

如果图中两堆点是两类的话,那么我们就希望他们能够投影到轴1去(PCA结果为轴2),这样在一维空间中也是很容易区分的。

4.MDS

        多维尺度变换(,MDS)是在低维空间去展示高维多元数据的一种可视化方法。该方法看起来类似于利用主成分得分作图,或者对两个线性判别量的得分作图。与上述方法不同的是,多维尺度变换的基本目标是将原始数据“拟合”到一个低维坐标系中,使得由降维所引起的任何变形最小。多维尺度变换涉及到的问题可以描述为:当n个项目中各对项目之间的相似性(或距离)给定时,求这些项目在低维空间的表示,并使得项目间的接近程度与原先的相似性(或距离) “大体匹配”。 
  根据样本是否可以计量,多维尺度变换可分为度量型多维尺度变换(metric MDS)和非度量型多维尺度变换(non-metric MDS)。在可计量的多维尺度变换中,依据度量的距离标准是否是欧氏距离,分为经典多维尺度变换(classical MDS)和非经典多维尺度变换(non-classical MDS)。
       多维尺度变换就是从经典多维尺度变换这个问题开始的。这个问题起源于当我们仅能获取到物体之间的距离的时候,如何由此去重构它的欧几里得坐标(Torgerson, W.S. 1958. Theory & Methods of Scaling. New York: Wiley)。

5.isomap

它所采用的核心算法和MDS是一致的,区别在于原始空间中的距离矩阵的计算上。很多数据是非线性结构,不适合直接采用PCA算法和MDS算法。在非线性数据结构中,流形上距离很远(测地线距离)的两个数据点,在高维空间中的距离(欧式距离)可能非常近,如下图所示:

只有测地线距离才反映了流形的真实低维几何结构。Isomap建立在MDS的基础上,保留的是非线性数据的本质几何结构,即任意点对之间的测地线距离。

现在的问题是怎么根据输入空间距离信息估计测地线距离?对于邻居数据点,其输入空间距离可以很好地近似测地线距离。在每个数据点和其邻居点之间添加加权边,得到一个连接图。距离较远的数据点之间的测地线距离可以通过最短路径距离近似。

Isomap算法总共分为三步。首先,为每个数据点确定邻居,有两种方式,一种是把最近的kk个作为邻居,一种是把半径ϵϵ内的所有点作为邻居。可以得到加权图,边上的权重表示两点之间的输入空间距离dX(i,j)dX(i,j)。

然后,对任意两个点对,计算最短路径距离dG(i,j)dG(i,j)作为测地线距离的估计。可以采用Dijkstra算法计算最短路径。

最后,把根据最短路径确定的距离矩阵DGDG作为MDS算法的输入,得到低维空间中最好地保留流形的本质结构的数据表示。

在计算近邻时,如果邻域范围指定得较大,那么距离较远的点可能被认为是近邻,造成“短路”问题;如果邻域范围指定的小,那么图中某些区域可能和其他区域不连通,出现“断路”问题。短路或者断路都会给后面计算最短路径造成误导。
 

 

 

PCA

https://blog.csdn.net/HLBoy_happy/article/details/77146012

https://blog.csdn.net/baimafujinji/article/details/79376378

https://blog.csdn.net/hustqb/article/details/78394058

https://download.csdn.net/download/zou986947503/3584844

MDA

https://blog.csdn.net/zhangweiguo_717/article/details/69663452

https://blog.csdn.net/Dark_Scope/article/details/53229427

LDA

https://blog.csdn.net/u011596455/article/details/53148248

isomap

https://blog.csdn.net/victoriaw/article/details/78497316

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值