zoukankan      html  css  js  c++  java
  • [转]LLE

    原始特征的数量可能很大,或者说样本是处于一个高维空间中,通过映射或变换的方法,降高维数据降低到低维空间中的数据,这个过程叫特征提取,也称降维

       特征提取得基本任务研究从众多特征中求出那些对分类最有效的特征,从而实现特征空间维数的压缩。传统的降维技术可以分为线性和非线性两类。

    (1)线性降维算法主要有PCA(Principal Component Analysis)、MDS(Multidimensional Scaling)及ICA;

    (2)非线性降维算法主要有自组织影射网络(Self-organising map, 生成拓扑映射(Generative Topographic mapping), 主曲线和表面(Principal Curves and Surfaces), 自编码神经网络(Auto-encoder Neural Networks)和线性混合模型(Mixtures of Linear Models)。 其中LLE,作为一种新的降维方法,既有非线性的特点,又有线性方法的优点,这几年成为人们研究的热点。

       Sam T.Roweis 和 Lawrence K.Saul最近提出LLE算法,它是针对非线性数据的一种新的降维技术,并且能够使降维后的数据保持原有的拓扑结构。 LLE算法可以广泛的应用于非线性数据的降维、聚类以及图像分割等领域。 图1是一个将LLE应用于降维的例子, 它将三维空间中的数据(图1中的B)映射到二维空间中(图1中的C)。 如果把图1(B)中红颜色和蓝颜色的数据分别看成是分布在三维空间中的两类数据,通过LLE算法降维后, 则数据在二维空间中仍能保持相对独立的两类。由此LLE算法可以应用于样本的聚类

       LLE是最新提出的非线性降维方法。该算法即具有处理非线性数据的优点又有线性降维方法计算性能的优越性。 简单的讲,该方法是将高维流型用剪刀剪成很多的小块,每一小块可以用平面代替,然后再低维中重新拼合出来, 且要求保留各点之间的拓扑关系不变。整个问题最后被转化为两个二次规划问题。

       LLE算法可以归结为三步:

    • (1) 寻找每个样本点的k个近邻点;
    • (2)由每个样本点的近邻点计算出该样本点的局部重建权值矩阵;
    • (3)由该样本点的局部重建权值矩阵和其近邻点计算出该样本点的输出值。

        算法的第一步是计算出每个样本点的k个近邻点。把相对于所求样本点距离最近的k个样本点规定为所求样本点的k个近邻点。k是一个预先给定值。Sam T.Roweis 和 Lawrence K.Saul算法采用的是欧氏距离,则减轻复杂的计算。然而本文是假定高维空间中的数据是非线性分布的,采用了diijstra距离。Dijkstra 距离是一种测地距离,它能够保持样本点之间的曲面特性,在ISOMAP算法中有广泛的应用。针对样本点多的情况,普通的dijkstra算法不能满足LLE算法的要求。

        LLE算法的第二步是计算出样本点的局部重建权值矩阵。这里定义一个误差函数,如下所示:

         其中 为 的k个近邻点, 是 与 之间的权值,且要满足条件: 。这里求取W矩阵,需要构造一个局部协方差矩阵  。

        将上式与相结合,并采用拉格朗日乘子法,即可求出局部最优化重建权值矩阵:

        在实际运算中,可能是一个奇异矩阵,此时必须正则化,如下所示:

    其中r是正则化参数,I是一个kxk的单位矩阵。

        LLE算法的最后一步将所有的样本点映射到低维空间中。映射条件满足如下所示:

    其中,为损失函数值,的输出向量,的k个近邻点,且要满足两个条件,即:

    其中I是的单位矩阵。这里的可以存储在的稀疏矩阵W中,当的近邻点时,,否则,。则损失函数可重写为:

    其中M是一个的对称矩阵,其表达式为:

    要使损失函数值达到最小, 则取Y为M的最小m个非零特征值所对应的特征向量。在处理过程中,将M的特征值从小到大排列,第一个特征值几乎接近于零,那么舍去第一个特征值。通常取第间的特征值所对应的特征向量作为输出结果。

    参考 http://smilefuture.blog.sohu.com/54204609.html

  • 相关阅读:
    海量数据中,寻找最小的k个数。
    快速排序
    反转一个单链表,分别以迭代和递归的形式来实现
    N个大小不等的自然数排序,时间复杂度为O(n),空间复杂度为O(1)
    堆排序
    两个已经排好序的链表合并为一个有序链表
    字符串过滤空格、回车、tab
    求一个浮点数的连续子序列最大乘积 (2013 小米校园招聘笔试题)
    单向循环链表队列,从头开始报数,当报到m或者m的倍数的元素出列
    给一个数组,元素都是整数(有正数也有负数),寻找连续的元素相加之和为最大的序列。
  • 原文地址:https://www.cnblogs.com/zhanjxcom/p/4148703.html
Copyright © 2011-2022 走看看