• Manifold Learning: ISOMAP


    转: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距离信息。

  • 相关阅读:
    计算器算法的简单实现
    [备忘]如何在Asp.net MVC,非Controller中获取当前Request,Session,Response等请求信息
    [Easy UI ]DataGrid 首次进入页面时,不加载任何数据
    使用Hyperv搭建oracle11gR2 RAC过程中遇到问题记录
    Win oracle10g 不同目录rman恢复记录
    ORACLE RAC 日常管理[10g,11g]
    win2008 11gRAC 环境 安装步骤记录 【前期配置简略】
    本地登录和远程登陆总结[oracle ,资料收集于网络]
    Oracle10g RAC 修改IP [转载]
    安装DNS Server linux 【转载】
  • 原文地址:https://www.cnblogs.com/guolei/p/3457459.html
Copyright © 2020-2023  润新知