zoukankan      html  css  js  c++  java
  • 机器学习降维算法四:Laplacian Eigenmaps 拉普拉斯特征映射

    原创书写,转载请注明此文出自:http://www.cnblogs.com/xbinworldhttp://blog.csdn.net/xbinworld

     

    Laplacian Eigenmaps 

    继续写一点经典的降维算法,前面介绍了PCA,LDA,LLE,这里讲一讲Laplacian Eigenmaps。其实不是说每一个算法都比前面的好,而是每一个算法都是从不同角度去看问题,因此解决问题的思路是不一样的。这些降维算法的思想都很简单,却在有些方面很有效。这些方法事实上是后面一些新的算法的思路来源。


    Laplacian Eigenmaps[1] 看问题的角度和LLE有些相似,也是用局部的角度去构建数据之间的关系。

    它的直观思想是希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近。Laplacian Eigenmaps可以反映出数据内在的流形结构。

    Laplacian Eigenmaps也通过构建相似关系图(对应的矩阵为clip_image002)来重构数据流形的局部结构特征。Laplacian Eigenmaps算法的主要思想是,如果两个数据实例i和j很相似,那么i和j在降维后目标子空间中应该尽量接近。设数据实例的数目为n,目标子空间的维度为m。定义clip_image006大小的矩阵clip_image008,其中每一个行向量clip_image010是数据实例i在目标m维子空间中的向量表示,Laplacian Eigenmaps要优化的目标函数如下

    clip_image012

    定义对角矩阵clip_image014,对角线上clip_image016位置元素等于矩阵clip_image002[1]的第i行之和,经过线性代数变换,上述优化问题可以用矩阵向量形式表示如下:

    clip_image018

    其中矩阵clip_image020是图拉普拉斯矩阵。限制条件clip_image022保证优化问题有解,并且保证映射后的数据点不会被“压缩”到一个小于m维的子空间中。使得公式最小化的Y的列向量是以下广义特征值问题的m个最小非0特征值(包括重根)对应的特征向量:

    clip_image024

     

    使用时算法具体步骤为:

    步骤1:构建图

    使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。

    步骤2:确定权重

    确定点与点之间的权重大小,例如选用热核函数来确定,如果点i和点j相连,那么它们关系的权重设定为:

    clip_image026

    另外一种可选的简化设定是clip_image028如果点i,j相连,否则clip_image030

    步骤3:特征映射

    计算拉普拉斯矩阵L的特征向量与特征值:clip_image032

    其中D是对角矩阵,满足clip_image034clip_image036

    使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。

    前面提到过,Laplacian Eigenmap具有区分数据点的特性,可以从下面的例子看出:

    clip_image038

    图1 Laplacian Eigenmap实验结果

    见图1所示,左边的图表示有两类数据点(数据是图片),中间图表示采用Laplacian Eigenmap降维后每个数据点在二维空间中的位置,右边的图表示采用PCA并取前两个主要方向投影后的结果,可以清楚地看到,在此分类问题上,Laplacian Eigenmap的结果明显优于PCA。

     

    image

    图2 roll数据的降维

    图2说明的是,高维数据(图中3D)也有可能是具有低维的内在属性的(图中roll实际上是2D的),但是这个低维不是原来坐标表示,例如如果要保持局部关系,蓝色和下面黄色是完全不相关的,但是如果只用任何2D或者3D的距离来描述都是不准确的。

    下面三个图是Laplacian Eigenmap在不同参数下的展开结果(降维到2D),可以看到,似乎是要把整个带子拉平了。于是蓝色和黄色差的比较远。

     

     

    Reference

    [1] Belkin, M., Niyogi, P. Laplacian eigenmaps and spectral techniques for embedding and clustering. Advances in neural information processing systems. 2002, 1585-592.


    自由是什么:想做什么就做什么,不想做什么就不做什么?还是不想做什么可以不做什么?
    ********:该做什么就做什么,不该做什么就不做什么?还是不该做什么可以不做什么?
  • 相关阅读:
    泛微云桥e-Bridge 目录遍历,任意文件读取
    (CVE-2020-8209)XenMobile-控制台存在任意文件读取漏洞
    selenium 使用初
    将HTML文件转换为MD文件
    Python对word文档进行操作
    使用java安装jar包出错,提示不是有效的JDK java主目录
    Windows server 2012安装VM tools异常解决办法
    ifconfig 命令,改变主机名,改DNS hosts、关闭selinux firewalld netfilter 、防火墙iptables规则
    iostat iotop 查看硬盘的读写、 free 查看内存的命令 、netstat 命令查看网络、tcpdump 命令
    使用w uptime vmstat top sar nload 等命令查看系统负载
  • 原文地址:https://www.cnblogs.com/yihaha/p/7265351.html
Copyright © 2011-2022 走看看