转:http://hi.baidu.com/chb_seaok/item/faa54786a3ddd1d7d1f8cd0b

在常见的降维方法中,PCA和LDA是最为常用的两种降维方法。PCA是一种无监督方法,它关注的是将数据沿着方差最大化的方向映射。而LDA是一种监督方法,它寻找映射轴(类之间耦合度低,类内的聚合度高),两种方法估计的都是全局的统计信息(均值和协方差)。

manifold learning是最近比较热门的领域,它是一种非线性降维技术,主要研究的是高维数据的潜在的流行结构。首先我们来看下为什么要进行流行学习,先看经典图:

图1

数据在高维空间空间中,什么事合理的距离度量(两个点之间的距离)成了关键,如图1,如果我们用欧式距离分别来度量图中红点与蓝点和黄点的距离的话,红点与蓝点的距离应该较红点与黄点距离远。事实上是否如此的,该距离是否真实的反应了数据之间的距离关系呢?想象力丰富的同学可能可以看出来,这些数据像一条丝带,把他在一个平面内展开,再去度量红点与蓝点和黄点的距离是否更为合理些?

ISOMAP是manifold learning的最为常见的一种方法,它主要的思想是用n维的欧式空间近似于一个N维的流行(n<<N).

第一步:构建点的邻居

图2

用KNN最近邻居算法对高维数据构建一个稀疏图,如果是该点邻居,则添加一条边,两点之间的距离则为欧式距离。

第二步:根据构建的图计算点与点之间最短距离

注:我们用点与点之间最短距离近似于geodesic距离(根据weak bound和asymptotic convergence定理)

计算最短路用Dijkstra或者Floyd算法计算,得到一个距离矩阵M,(表示的是点与点之间的距离)

图3

第三步:高维数据映射到低维空间

建立一个损失函数:

注:DG代表原图中数据,DY代表映射后数据

为了使E尽量小,解决的方法类似于PCA,进行矩阵分解,取前P个特征根,也就是将数据映射到P维空间。

PCA分解的是协方差矩阵,而ISOMAP也要进行类似的处理。在第二步中我们计算出距离矩阵M,对M进行算子操作,

= (1)

(2)

注:N为样本数据点个数,克罗内克函数.

该步的算子操作类似于PCA中的减去均值操作,然后进行矩阵分解,取前P个特征根。

至此,ISOMAP完成了高维数据的非线性降维,降维后的数据极大的保持全局的geodesic距离信息。

Manifold Learning: ISOMAP的更多相关文章

  1. 流形学习(manifold learning)综述

    原文地址:https://blog.csdn.net/dllian/article/details/7472916 假设数据是均匀采样于一个高维欧氏空间中的低维流形,流形学习就是从高维采样数据中恢复低 ...

  2. 转载manifold learning一篇

    我恨自己不干活儿,不过也没辙. 早晚要学习流形的,今天先转一篇文章,以后找不到就尿了. 我真羡慕数学系的人,╮(╯▽╰)╭. 发信人: Kordan (K&M), 信区: AI标  题: do ...

  3. 流形学习 (Manifold Learning)

    流形学习 (manifold learning) zz from prfans............................... dodo:流形学习 (manifold learning) ...

  4. Manifold learning 流形学习

    Machine Learning 虽然名字里带了 Learning 一个词,让人乍一看觉得和 Intelligence 相比不过是换了个说法而已,然而事实上这里的 Learning 的意义要朴素得多. ...

  5. 流形学习(manifold learning)的一些综述

    流形学习(manifold learning)的一些综述 讨论与进展 issue 26 https://github.com/memect/hao/issues/26 Introduction htt ...

  6. 机器学习算法总结(十二)——流形学习(Manifold Learning)

    1.什么是流形 流形学习的观点:认为我们所能观察到的数据实际上是由一个低维流行映射到高维空间的.由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上这些数据只要比较低的维度就能唯一的表示 ...

  7. sklearn 下的流行学习(Manifold Learning)—— sklearn.manifold

    1. t-SNE from sklearn.manifold import TSNE X_proj = TSNE(random_state=123).fit_transform(X) 2. t_sne ...

  8. manifold learning

    MDS, multidimensional scaling, 线性降维方法, 目的就是使得降维之后的点两两之间的距离尽量不变(也就是和在原是空间中对应的两个点之间的距离要差不多).只是 MDS 是针对 ...

  9. 流行-Manifold学习理解与应用

    流行-Manifold[1]  流形,也就是 Manifold . 1. 比较好的形象理解 流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的,即这些数据所在的空间是“ ...

随机推荐

  1. 关于echart x轴溢出的解决办法

    现象 溢出挤在一起,或者默认多余的不显示,如果需要强制显示,需要设置 axisLabel: { interval: 0, } 解决办法: 一.旋转一定的角度 axisLabel: { interval ...

  2. Android表格布局之设置边框

    Android表格布局本身没有边框,不过可以通过背景色的设置可以实现表格边框的显示. 首先可以设置TableRow的背景色,然后设置内容的背景色.根据它们的颜色差就出现了边框.只要微调Content与 ...

  3. Hibernate查询所有数据的操作

    Hibernate查询所有数据的操作方式有三种. 1.Query (1)使用该方法查询时,不需要编写sql语句,但是需要编写hql(Hibernate Query Language)语句,该语句是Hi ...

  4. 【curl】Linux下命令行curl详解

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 语法:# c ...

  5. java中wait和notify的关系

    java中,wait和notify这两个方法是一对,wait方法阻塞当前线程,而notify是唤醒被wait方法阻塞的线程.     首先,需要说明的是,wait和notify方法都是Object的实 ...

  6. VMware Workstation 12激活码

    VMware Workstation 12 Pro key/注册码: VY1DU-2VXDH-08DVQ-PXZQZ-P2KV8 VF58R-28D9P-0882Z-5GX7G-NPUTF YG7XR ...

  7. 一:SpringIOC&DI

    一:spring 1.spring介绍 spring负责管理项目中的所有对象,看作是项目中对象的管家. spring一站式框架: spring框架性质是属于容器性质的 容器中装什么对象就有什么功能,所 ...

  8. MySQL 5.7 解压版 安装教程(图文详细)[Windows]

    最近在学习中用到了MySQL数据库,在安装过程中遇到了不少问题,在翻了大半天百度后,问题基本都解决了,所以写一篇MySQL 5.7 解压版的图文详细安装教程. 至于为什么我会选择解压版而不是安装版,一 ...

  9. git的问题(error: object file .git/objects/* is empty...)的解决方案及对git版本库文件的了解

    由于操作不当,导致git版本库出了大问题,如下所示: error: object file .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e ...

  10. 优秀iOS文章集合

    Runtime 10种用法(没有比这更全的了成为iOS顶尖高手,你必须来这里(这里有最好的开源项目和文章)iOS逆向Reveal查看任意app 的界面JSPatch (实时修复App Store bu ...