1. PCA

Principle components analysis
主成分分析法:https://blog.csdn.net/weixin_43909872/article/details/85321384
它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。
缺点:PCA是用投影后方差大小来决定如何投影,比如下图,第二种投影显然数据方差更大,但本来应该被分开的两块数据融为一体了。投影以后对数据的区分作用并不大。

  1. LDA

Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)是一种有监督的(supervised)线性降维算法。与PCA保持数据信息不同,LDA是为了使得降维后的数据点尽可能地容易被区分!
LDA算法: https://www.cnblogs.com/pinard/p/6244265.html
还是下图,LDA算法会把数据映射到第一个直线上,保证数据的区分度

PCA和LDA的异同:
相同点:
a. 两者均可以对数据进行降维。
b. 两者在降维时均使用了矩阵特征分解的思想。
c. 两者都假设数据符合高斯分布。

不同点:
a. LDA是有监督的降维方法,而PCA是无监督的降维方法
b. LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
c. LDA除了可以用于降维,还可以用于分类。
d. LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。

  1. LLE

Locally linear embedding 局部线性嵌入
这是一种非线性降维算法,它能够使降维后的数据较好地保持原有流形结构。LLE可以说是流形学习方法最经典的工作之一。
主要思想是用测地距离(下面的实线距离)代替欧式距离(虚线距离)作为降维标准。
如图二,我们希望三维图能够展开,这样各种颜色的数据都能区分开,否则只是直接映射到二维平面各种颜色就会混在一起。

算法流程:

  1. 选择一些相近的点,x1, x2, x3, x4
    那么假设x1x1可以由x2,x3,x4x2,x3,x4线性表示:

    我们需要使得降维后的y1, y2, y3, y4同样满足这样的等式

    具体推导和求解很多地方能搜到,不列了。
    思想就是先求w的权重能使得对于固定的K,每个点x的相邻点们算出来的值和x尽量接近,于是通过求均方差的最小值可以求出w
    然后根据w来选择具体的转置矩阵,使得降维后的相邻y们加权计算(w)都接近于y

LLE的优缺点:
主要优点有:
a. 可以学习任意维的局部线性的低维流形
b. 算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。
主要缺点有:
a. 算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。
b. 算法对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结果有很大影响。

  1. LEP

拉普拉斯特征映射(Laplacian Eigenmaps)看问题的角度和常见的降维算法不太相同,是从局部的角度去构建数据之间的关系,这上面有点类似LLE算法。具体来讲,拉普拉斯特征映射是一种基于图的降维算法,它希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近,从而在降维后仍能保持原有的数据结构。
知乎上一个文章比较便于理解:https://zhuanlan.zhihu.com/p/25096844

理解这个文章的一些tips:
a. L=D-W是个半正定矩阵,也就是说用这个矩阵去转置任何向量的结果都是>=0的
b. 奇异值分解(Singular Value Decomposition, 简称SVD) http://www.cnblogs.com/pinard/p/6251584.html
c. f的模是1
d. L这个矩阵,是构造出来的天才矩阵。如果他的特征值是0,那么必然所有的特征向量里fi = fj(i和j相连的情况下)。如果只有一个连通图,那么就只有一个特征值0,对应的特征向量全是一样的,如果有两个连通图,那么有两个特征值0,对应的特征向量应该有两种。
e. 对下面式子的理解:3式里如果fi和ji只能取0和1,那么当wij权重大的时候,fi和fj得很相近,取0或者1,这样总和就变小了,相应的也就分出了两块,这两块之间的权重都很小——也就能把图给分成两块,把权重小的线都给割断。于是3式在这种情况下就跟2式是等同的。


f.相应的也可以想象,所有连通的图都算一起,那么那个矩阵特征值就是0,倒数第二小的特征值就是把图尽可能小的划分——牺牲尽可能少的权重线,划分成了两块,倒数第三小的特征值就代表划分成了三块

理解完了Graph Laplacian,下面是用这个来做LEP的简要步骤:
a. 构建图
使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。

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

也可以直接一点,相连是1,不连是0

c. 特征映射
计算拉普拉斯矩阵L的特征向量与特征值:Ly=λDyLy=λDy
使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。

比如下图,我们想把降到二维,就直接用2.21和2.37对应的特征向量,这两组向量能够比较好的模拟原来图里面的连通性,保留原来的数据结构(或者说分类)

参考文章:https://wenku.baidu.com/view/4cd2b8d4763231126edb11fd.html

四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)相关推荐

  1. 降维算法(PCA/LDA/LLE/LEP/FA)总结

    目录 1 PCA/LDA 2 Factor Analysis 3 LLE 4 LEP Reference 1 PCA/LDA 参考我的这篇博文 主成分分析(PCA)/线性判别分析(LDA)总结 2 F ...

  2. python用tsne降维_哈工大硕士实现了 11 种经典数据降维算法,源代码库已开放

    网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA.MDS.LLE. ...

  3. 【sklearn学习】降维算法PCA和SVD

    sklearn中的降维算法 主成分分析 独立成分分析 decomposition.PCA class sklearn.decomposition.PCA(n_components=None, *, c ...

  4. std中稳定排序算法_源代码库已开放 | 哈工大硕士生用 Python 实现了 11 种经典数据降维算法...

    转自:AI开发者 网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA ...

  5. python 最优化算法库_哈工大硕士生用?Python 实现了 11 种经典数据降维算法,源代码库已开放...

    雷锋网 AI 开发者按:网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA. ...

  6. 文本处理算法_基于 Python 的 11 种经典数据降维算法

    网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA.MDS.LLE. ...

  7. 基于 Python 的 11 种经典数据降维算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有 ...

  8. 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

    四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 引言 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习 ...

  9. PCA降维算法总结以及matlab实现PCA(个人的一点理解)

    转载请声明出处.by watkins song 鉴于本文比较混乱, 所以写了一个新的PCA的详细介绍, 请参见: http://blog.csdn.net/watkinsong/article/det ...

最新文章

  1. ubuntu安装thrift
  2. 干货 | 基于贝叶斯推断的分类模型 机器学习你会遇到的“坑”
  3. 一次PostgreSQL行估算偏差导致的慢查询分析
  4. Qt无法用UTF-8编辑问题
  5. OpenCV基础知识 图像
  6. 1-5 三整数排序(算法竞赛入门经典)
  7. 领域驱动设计的简略设计步骤
  8. 惠普服务器c盘格式化提示win7系统盘,通过U盘重装系统,已经格式化C盘提示如下...
  9. kafka的分区详解
  10. 如何管理计算机回收站,回收站功能多多 教你如何玩转回收站
  11. python中的reshape是什么意思,Python的reshape的用法
  12. C语言字母常量所对应的数字,关于c语言常量的正确表示方法介绍
  13. uniapp uview 图片上传
  14. 内盘外盘新手看热闹,老手在内盘外盘看门道
  15. Genymotion - 强大好用高性能的 Android 模拟器 (在电脑流畅运行APK安卓软件游戏的利器)
  16. c语言回车换行符的作用,C语言中回车符和回车换行符有什么区别
  17. 快消品行业ERP系统仓储模块应该包括哪些功能?
  18. “你适合做开发吗”知乎Live问题集锦
  19. 如何显示密件抄送人员地址_发送电子邮件时,抄送和密件抄送有什么区别?
  20. Tecplot如何设置图例 并更改图例边框大小/字框占比

热门文章

  1. Scrapy爬虫框架管道文件pipelines数据图像存储
  2. Xtrabackup 安装以及 mysql 使用 Xtrabackup 物理备份过程记录
  3. Python爬虫学习笔记
  4. 每年的风能部署必须增长四倍,才能到2050年实现净零排放
  5. SpringCloud 之 注册中心
  6. MC服务器角色背包文件,可穿戴背包配置文件说明 - 可穿戴背包 (Wearable Backpacks) - MC百科|最大的Minecraft中文MOD百科...
  7. gym103627L XXII Open Cup, GP of Daejeon Curly Racetrack 题解
  8. Facebook F8大会|闲鱼高级专家参会分享
  9. 【altium designer】画原理图
  10. 机械臂规划----三次样条曲线