• 数据降维降维(二)Laplacian Eigenmaps


    改章节个人在上海游玩的时候突然想到的...之前就有想写几篇关于数据降维的博客,所以回家到之后就奋笔疾书的写出来发布了

        降维系列:

        

        ---------------------   

          

                前一篇文章中介绍了主成分分析。PCA的降维原则是最小化投影损失,或者是最大化保留投影后数据的方差。在谈到其缺点的时候,我们说这一目标并不必定有助于数据的分类,换句话说,本来在高维空间中属于两类的样本,降维后可能反而弗成分了。这时一种经典的降维方法是LDA,其原理是使降维后的数据间类内距离尽可能小,类间距离尽可能大。

        

                应用LDA有个条件,就是要知道降维前数据分离属于哪一类,而且还要知道数据完整的高维信息。然而在Data Mining的很多应用下,我们是不知道数据的详细特征的(也就是高维信息),而仅仅知道数据与数据之间的相似程度。比如,在文本聚类的时候我们可以轻松知道两句话之间如许相似,但是却不必定设计出每句话应抽取什么样的特征形式。在这种应用场景下,我们要对数据进行降维,必然要尽可能保证本来相似的数据在降维后的空间中仍然相似,而不相似的数据尽可能还是距离很远。处理这一问题可以采取的方法是MDS,LE,LLE等。这里我就总结总结LE(Laplacian Eigenmaps)。

                还要强调一次,不是说后面每一个算法都比前面的好,而是每一种算法的降维目标都不一样,都是从不同角度去看问题。

                Laplacian Eigenmaps看问题的角度和LLE十分相似。它们都用图的角度去构建数据之间的关系。图中的每一个顶点代表一个数据,每一条边权重代表数据之间的相似程度,越相似则权值越大。并且它们还都假设数据拥有局部结构性子。LE假设每一点只与它距离最近的一些点相似,再远一些的数据相似程度为0,降维后邻近的点尽可能保持邻近。而LLE假设每一个点都能通过四周邻域数据的线性组合来描述,并且降维后这一线性关系尽可能保持稳定。不过这里我不主要介绍LLE,主要介绍LE,因为它在spectral clustering中被应用。

                首先要构建图的权值矩阵。构建方法为:

        

    • 1)通过设置一个阈值,相似度在阈值以下的都直接置为零,这相当于在一个 -领域内斟酌局部性;
    • 2)对每一个点选取 k 个最接近的点作为街坊,与其他的点的相似性则置为零。这里须要注意的是 LE 要求相似度矩阵拥有对称性,因此,我们平日会在  属于  的 k 个最接近的街坊且/或反之的时候,就保留  的值,否则置为零;
    • 3)全连通。

                以上三种方法构成的矩阵W都是对称的。按理说3会更让大家接受,但是1)和2)能够保证矩阵的稀少性,而稀少的矩阵对求特征值是十分便利的。不小心剧透了一下,LE的求解终究还是一个特征值分解问题。不过它和PCA不一样。怎么不一样,后面渐渐说。

                LE同样把降维斟酌为一种高维到低维的映射,则一个好的映射应当使连通的点靠的更近(作者注:不连通的点按理应当靠远点)。设xi映射后的点为yi,则LE的目标就是最小化以下函数:

        

        数据和降维

        

                如果采取1)和2)的方法结构矩阵,不连通的两点Wij为0,所以降维对它们没有影响。感到有点不太合理,这不是容忍他们肆无忌惮么?!按理来说3)应当是更合理一些,但是3)构成的矩阵不是稀少的╮(╯▽╰)╭。这就是一个trade-off了。而另一方面,靠的近的两个点对应的Wij大,如果降维后他们距离远了,受到的处分就会很大

                聪明的话你会一眼看出来:不对啊,降维后如果全部的y都等于同一个值,目标函数明显是最小的,那还弄个屁啊?当然,我们会在后面求解的时候加上这一制约条件,不允许y为一个各维雷同的常量。

                我们倏地对目标函数进行一下整理:

        

        数据和降维

        

        每日一道理
    微笑,是春天里的一丝新绿,是秋日里的一缕阳光,是骄阳下的一片浓荫,是冬雪中的一株梅红……微笑着去面对吧,你会感到人生是那样的温馨与甜蜜!

                其中数据和降维 ,L=D-W,L就叫做Laplacian Matrix。

                于是,我们的最小化问题可以等效为:

        

        数据和降维

        

                这个公式是不是就似曾相识了?和PCA的目标函数十分相似,只不过当初的目标函数是求最小值,而PCA是求最大值,约束条件也小小地变形了一下。这个目标的求解就是一个狭义特征值分解问题:

        

        数据和降维

        

                说到这里,还有一个问题没有处理,就是刚才提到的“y为一个各维雷同的常量”的情况。我们看,L和D都个半正定矩阵,因此特征值都应当大于等于0。可以很快证明,特征值为0时,y的取值(如果有之一的话)是一个全1的向量(可以把矩阵乘积展开来计算一下,左边因为L=D-W的减号作用,结果明显也是0的),也就是我们刚才怀疑到的这种情况。

                因此,对于数据和降维,我们将特征值从小到大排序后,选择第二小的特征值到第m+1小的特征值对应的特征向量(共m个),构成一个Nxm的矩阵,矩阵的每一行就是原来的数据降维后得到的m维特征。你会不会觉得很神奇,本来我们只知道数据与数据之间的相似程度,结果竟然把降维后的特征求出来了!其实求出的特征不过是个绝对特征罢了,他们之间绝对的距离的远近才是实际重要的,渐渐体会目标函数你就会理解了。

                还要再说说这里的特征值。如果唯一一个特征值为0,那么这个graph必定是全通的。关于这个论断我们可以这样证明:

        假设f是特征值0对应的特征向量,那么:

        

        数据和降维

        

        

                如果两个顶点是连通的,那么wij>0,为了满意上式只要让fi=fj。如果graph是连通的话,就可以找到一系列w1i,wij,wjk……大于0(其中ijk….分离属于234…N中的一个数),这样就成立了f1=fj=fk=…..。换句话说,f是一个全为一个数的向量,与全1的向量是同一个向量。又因为唯一这一个向量满意条件,所以唯一一个特征值0满意全通的假设。就证明好了。

                将这个论断做点推广,就是如果一个graph可以分为k个连通区域,那么特征值分解后就有k个为0的特征值。

         

                Laplacian Eigenmap拥有区分数据点的特性,可以从上面的例子看出:

        数据和降维

        

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

         

                 事实上,LE和LLE都假设数据分布在一个嵌套在高维空间中的低维流形上。Laplacian Matrix其实是流形的 Laplace Beltrami operator的一个离散近似。关于流型和Laplace Beltrami operator我也没有怎么研究过,这里就给这么一个论断给大家。大家可以参考上面给出的两篇参考文献做进一步浏览。

         

        Further Readings:

        1.  Laplacian Eigenmaps for Dimensionality Reduction and Data Representation

        2.  A Tutorial on Spectral Clustering

         

        -----------------

        jiang1st2010

        原文地址:http://blog.csdn.net/jiang1st2010/article/details/8945083

    文章结束给大家分享下程序员的一些笑话语录: 打赌
    飞机上,一位工程师和一位程序员坐在一起。程序员问工程师是否乐意和他一起玩一种有趣的游戏。工程师想睡觉,于是他很有礼貌地拒绝了,转身要睡觉。程序员坚持要玩并解释说这是一个非常有趣的游戏:"我问你一个问题,如果你不知道答案,我付你5美元。然后你问我一个问题,如果我答不上来,我付你5美元。"然而,工程师又很有礼貌地拒绝了,又要去睡觉。  程序员这时有些着急了,他说:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,这的确起了作用,工程师答应了。程序员就问:"从地球到月球有多远?"工程师一句话也没有说,给了程序员5美元。  现在轮到工程师了,他问程序员:"什么上山时有三条腿,下山却有四条腿?"程序员很吃惊地看着工程师,拿出他的便携式电脑,查找里面的资料,过了半个小时,他叫醒工程师并给了工程师50美元。工程师很礼貌地接过钱又要去睡觉。程序员有些恼怒,问:"那么答案是什么呢?"工程师什么也没有说,掏出钱包,拿出5美元给程序员,转身就去睡觉了。

  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3087397.html
Copyright © 2020-2023  润新知