ML: 降维算法-LE
PCA的降维原则是最小化投影损失,或者是最大化保留投影后数据的方差。LDA降维需要知道降维前数据分别属于哪一类,而且还要知道数据完整的高维信息。拉普拉斯特征映射 (Laplacian Eigenmaps,LE)看问题的角度和LLE十分相似。它们都用图的角度去构建数据之间的关系。图中的每个顶点代表一个数据,每一条边权重代表数据之间的相似程度,越相似则权值越大。并且它们还都假设数据具有局部结构性质。LE假设每一点只与它距离最近的一些点相似,再远一些的数据相似程度为0,降维后相近的点尽可能保持相近。而LLE假设每一个点都能通过周围邻域数据的线性组合来描述,并且降维后这一线性关系尽可能保持不变。
LE的基本思想就是用一个无向有权图来描述一个流形,然后通过用图的嵌入(graph embedding)来找低维表示。说白了,就是保持图的局部邻接关系的情况下把这个图从高维空间中重新画在一个低维空间中(graph drawing)。就算法而言,就是那三步:构建图、选择权、特征映射。
如: 对 N 个维度为 m 的样本,希望可以把它们降到 k 维(k<m)。不过首先我们要把样本们转化成一张图。一般来说有两种思路可以完成这一步:
- 1. 对于每个顶点,找到距离它最近的 k 个邻居, 每个邻居用下面这个高斯函数计算边的权重;
- 2. 以每个顶点为中心画一个半径为 R 的球, 所有在这个球里面的点都是邻居,用下面这个高斯函数计算一下权重

有了一个 graph,然后就可以用 Laplacian 三板斧了: 1. 计算 L; 2. 把 L 做SVD分解; 3. 找 出 top k+1 最小的 eigenvalue, 去掉为 0 的那个, 就能得到对应的 k 个维度为 1*N 的向量, 变成 N 个 k*1 的向量就是降维之后的点。
LE算法的数据推理参见;
- https://zhuanlan.zhihu.com/p/25096844
- http://www.cnblogs.com/xbinworld/archive/2012/11/29/2795287.html
- http://www.cnblogs.com/xbinworld/archive/2012/11/27/2791504.html
dimRed
参考资料:https://cran.r-project.org/web/packages/dimRed/dimRed.pdf
Slots
- fun: A function that does the embedding and returns a dimRedResult object.
- stdpars:The standard parameters for the function
需求安装的软件包
install.packages("loe")install.packages("RSpectra")install.packages("dimRed")
构建对象及结构示例代码:
> library(dimRed)
> library(loe)
> library(RSpectra)
>
> #构建dimRedResult 对象
> dm <- dimRedData(data = iris[, 1:4], meta = iris[, 5])
> leim <- LaplacianEigenmaps()
> str(leim)
Formal class 'LaplacianEigenmaps' [package "dimRed"] with 2 slots
..@ fun :function (data, pars, keep.org.data = TRUE)
..@ stdpars:List of 6
.. ..$ ndim : num 2
.. ..$ sparse: chr "knn"
.. ..$ knn : num 50
.. ..$ eps : num 0.1
.. ..$ t : num Inf
.. ..$ norm : logi TRUE
参数说明:
- ndim: 输出维度数
- sparse:字符串向量, "knn", "eps"
- knn: knn 近邻个数
- eps:球半径
- t:Parameter for the transformation of the distance matrix by w=exp(-d^2/t), larger values give less weight to differences in distance, t == Inf treats all distances != 0 equally
计算及结果示例代码
> emb <- leim@fun(dm,leim@stdpars)
2017-08-18 18:50:25: Creating weight matrix
2017-08-18 18:50:25: Eigenvalue decomposition
Eigenvalues: 3.838199e-01 3.691626e-02 9.011414e-17
2017-08-18 18:50:25: DONE
> str(emb)
Formal class 'dimRedResult' [package "dimRed"] with 9 slots
..@ data :Formal class 'dimRedData' [package "dimRed"] with 2 slots
.. .. ..@ data: num [1:150, 1:2] -0.104 -0.116 -0.114 -0.117 -0.106 ...
.. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. ..$ : NULL
.. .. .. .. ..$ : chr [1:2] "LEIM1" "LEIM2"
.. .. ..@ meta:'data.frame': 150 obs. of 1 variable:
.. .. .. ..$ meta: Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
..@ org.data : num [1:150, 1:4] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : NULL
.. .. ..$ : chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
..@ apply :function (x)
..@ inverse :function (x)
..@ has.org.data: logi TRUE
..@ has.apply : logi FALSE
..@ has.inverse : logi FALSE
..@ method : chr "leim"
..@ pars :List of 7
.. ..$ ndim : num 2
.. ..$ sparse: chr "knn"
.. ..$ knn : num 50
.. ..$ eps : num 0.1
.. ..$ t : num Inf
.. ..$ norm : logi TRUE
.. ..$ d :function (x, method = "euclidean", diag = FALSE, upper = FALSE, p = 2)
> head(emb@data@data)
LEIM1 LEIM2
[1,] -0.1038285 -0.012537113
[2,] -0.1158002 -0.016098949
[3,] -0.1140282 -0.014946421
[4,] -0.1168551 -0.006973706
[5,] -0.1057686 -0.012734742
[6,] -0.1298387 -0.017395325
图例: plot(emb,type="parpl")

LDA计算分类结果
> library(MASS)
> newSet <- cbind(iris,emb@data@data)
> model1=lda(Species~LEIM1+LEIM2,data=newSet)
> table(iris$Species,predict(model1)$class) setosa versicolor virginica
setosa 50 0 0
versicolor 1 42 7
virginica 0 6 44
ML: 降维算法-LE的更多相关文章
- ML: 降维算法-LLE
局部线性嵌入 (Locally linear embedding)是一种非线性降维算法,它能够使降维后的数据较好地保持原有 流形结构 .LLE可以说是流形学习方法最经典的工作之一.很多后续的流形学习. ...
- ML: 降维算法-概述
机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达, y是数据点映射后的低维向量 ...
- ML: 降维算法-LDA
判别分析(discriminant analysis)是一种分类技术.它通过一个已知类别的“训练样本”来建立判别准则,并通过预测变量来为未知类别的数据进行分类.判别分析的方法大体上有三类,即Fishe ...
- ML: 降维算法-PCA
PCA (Principal Component Analysis) 主成份分析 也称为卡尔胡宁-勒夫变换(Karhunen-Loeve Transform),是一种用于探索高维数据结 ...
- 降维算法整理--- PCA、KPCA、LDA、MDS、LLE 等
转自github: https://github.com/heucoder/dimensionality_reduction_alo_codes 网上关于各种降维算法的资料参差不齐,同时大部分不提供源 ...
- 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps
四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映 ...
- sklearn LDA降维算法
sklearn LDA降维算法 LDA(Linear Discriminant Analysis)线性判断别分析,可以用于降维和分类.其基本思想是类内散度尽可能小,类间散度尽可能大,是一种经典的监督式 ...
- 一步步教你轻松学奇异值分解SVD降维算法
一步步教你轻松学奇异值分解SVD降维算法 (白宁超 2018年10月24日09:04:56 ) 摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分 ...
- 一步步教你轻松学主成分分析PCA降维算法
一步步教你轻松学主成分分析PCA降维算法 (白宁超 2018年10月22日10:14:18) 摘要:主成分分析(英语:Principal components analysis,PCA)是一种分析.简 ...
随机推荐
- web-view中下载微信头像跨域解决方案
let img = new Image() // 头像地址后边添加时间戳可解决跨域问题 555. img.src = 'http://wx.qlogo.cn/mmopen/vi_32/RnLIHfXi ...
- HDU 6090 17多校5 Rikka with Graph(思维简单题)
Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...
- 计数SQL,查找单据总量和按季度查找单据总量
--查找单据总量 select COUNT(1) as '表XXXXXX数据量' from XXXXXXwith(nolock) --按季度查找单据总量 select count(1) as '表XX ...
- Samsung_tiny4412(驱动笔记06)----list_head,proc file system,GPIO,ioremap
/**************************************************************************** * * list_head,proc fil ...
- verilog实现中值滤波
前言 项目需要,想要实现算法中的其中一步即中值滤波,同时,因为图像处理部分中值滤波相对来说还是比较简单的,将中值滤波的硬件实现作为进入FPGA领域的第一次尝试.虽然说网上有较多关于中值滤波的文档,可是 ...
- Atcode ABC105-C:Base -2 Number
C - Base -2 Number Time Limit: 2 sec / Memory Limit: 1024 MB Score : 300300 points Problem Statement ...
- 回收机制GC
.NET 之 垃圾回收机制GC 一.GC的必要性 1.应用程序对资源操作,通常简单分为以下几个步骤:为对应的资源分配内存 → 初始化内存 → 使用资源 → 清理资源 → 释放内存. 2.应用程序对资源 ...
- visual studio + opencv + contrib
经过一天的奋战,终把opencv给用起来了.我是用的工具是vs2017+opencv3.3 上午想用mingw+opencv,结果查了很多资料说gcc不支持opencv.我感觉很奇怪,支不支持以后再说 ...
- 2018.4.2 flask web
from flask import Flask,request from flask import jsonify from flask import render_template app = Fl ...
- 聊聊 CAS
哥有故事,你有酒,长夜漫漫,听我给你说. 参考资源: https://blog.csdn.net/hsuxu/article/details/9467651 1.概述 CAS,compare and ...