转: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. c#静态扩展方法,字典的克隆扩展方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. BNU 33693——Problemsetting——————【枚举+最大流】

    Problemsetting Time Limit: 5000ms Memory Limit: 131072KB 64-bit integer IO format: %lld      Java cl ...

  3. Map集合遍历的4种方法

    完全复制https://www.cnblogs.com/blest-future/p/4628871.html import java.util.HashMap; import java.util.I ...

  4. web.coofig 配置跨域问题

    <customHeaders> <add name="/> <add name="Access-Control-Allow-Origin" ...

  5. No.3一步步学习vuejs之计算属性和观察者

    一.计算属性运行结果 <div id = "demo1"> <p>Original message: "{{message}}"< ...

  6. window7下搭建本机版git并在本机上进行代码管理

    1.安装软件:Git-1.9.2-preview20140411.exe与TortoiseGit-1.8.8.0-64bit.msi 2.在本机任一目录下执行如下操作: 3.创建一个test.java ...

  7. poj 3260 最少硬币(01+多重+完全背包)

    http://www.cnblogs.com/ACMan/archive/2012/08/14/2637437.html #include <iostream> #include < ...

  8. IE8 td元素 width无效的bug;

    不经意间做项目发现IE的td在某种情况下好奇怪,自己设置的width不起作用: 后经google大法,发现解决方案:已验证过完美解决bug; <table style="width:  ...

  9. 1004. 填充矩形 (Standard IO)

    题目描述 已知矩形的大小为n×m,现用a×a的正方形填充该矩形.输入三个正整数n,m,a(n,m,a≤10^9),计算至多能填入多少正方形?(正方形可以正好碰到矩形边界,但不能超出矩形外) 输入 一行 ...

  10. 日常捕获的野生知识 - javascript 与 类

    javascript 并不提供类这样方便实用的面向对象类型,今天学习到了,直接上代码: <!DOCTYPE html> <html lang="en"> & ...