PCA对非线性的数据集处理效果不太好。

另一种方法 流形学习 manifold learning

是一种无监督评估器,试图将一个低维度流形嵌入到一个高纬度 空间来描述数据集 。

类似 一张纸 (二维) 卷起 弄皱 (三维)。二维流形 嵌入到一个三维空间, 就不再是线性的了。

流形方法技巧:

  • 多维标度法 multidimensional scaling MSD
  • 局部线性嵌入法 locally linear embedding LLE
  • 保距映射法 isometric mapping Isomap

流形学习:HELLO

生成一些二维数据来定义一个流形。

创建一组数据,构成单词hello的形状





输出图像包含了很多二维的点。

多维标度法

x和 y 的值并不是数据间关系 的必要基础特征, 真正的基础特征是每个点与数据 集中其他 点 的距离。

表示这种关系的常用方法是 关系 距离 矩阵: 对于N个点。构建一个NxN的矩阵, 元素(i,j)是 点 i和点j之间的距离。

使用pairwise_distances函数计算原始数据的关系矩阵





这个距离矩阵给出了一个数据集内部关系的表现形式,这种形式与数据集的旋转和投影无关系,但距离矩阵的可视化效果显得不够直观。

虽然从(x,y)坐标计算这个距离矩阵很简单,但是从距离矩阵转回到(x,y)却很困难。

这就是多维标度发可以解决的问题:他可以将一个数据集的距离矩阵还原成一个D维坐标来表示数据集。

看多维度表法是如何还原距离矩阵的,仅仅依靠描述数据点间关系的NXN距离矩阵,就可以还原出一种可行的二维坐标。

将MDS用于流形学习

既然距离矩阵可以冲数据的任意维度进行计算。 那么这种方法绝对非常实用,

既然可以在一个二维平面中简单的旋转数据,那么也可以用一下函数将其投影到三维孔家。



可以通过MDS评估器输入这个三维数据,计算距离急症,然后得出距离矩阵的最优二维嵌入结果。结果还原了原始数据的形状



以上就是使用流形学习评估器希望 达成的目标: 给的一个高维嵌入数据,寻找数据的一个低维表示。并保留数据间的特定关系。

在MDS示例中。保留的数据是每对数据点之间的距离。

非线性嵌入:当MDS失败是

当嵌入为非线性是,集超越简单的操作集合时,MDS算法就会失效。

将输入数据在三维空间中扭曲成 S形状的示例



尝试用MDS算法来处理这个数据,就无法展示数据非线性嵌入的特征。进而导致我们丢失了这个嵌入式流形的内部基本关系特性。

非线性流形: 局部线性嵌入

MDS算法构建嵌入式,总是期望保留相聚很远的数据点之间的距离。如果修改算法,只保留比较接近的点之间的距离。嵌入的结果可能会与我们的期望更接近。



其中每一条细小的线都表示在嵌入式会保留的距离。不保留所有的距离。仅保留邻节点 间的距离。 每个点最近的100个邻节点。

最新文章

  1. BZOJ2243——[SDOI2011]染色
  2. iOS开发~UI布局(一)初探Size Class
  3. windbg 命令 gchandles
  4. 开发者必知的8款App快速开发工具
  5. CCF真题之字符串匹配
  6. CentOS 配置solr中文分词器
  7. ACM—最大连续子序列(HDOJ1003)
  8. javascript笔记---算法基础学习
  9. Android真机抓屏- Android Screen Monitor
  10. Get a handle on PHP Handlers
  11. 使用Fiddler解析WCF RIA Service传输的数据
  12. Html 模态框操作
  13. Centos 7.3 编译 & 安装 & 测试 facebook faiss
  14. Makefile 的使用
  15. 如何在新工程中添加两个不同版本的的echarts库
  16. [IR] Concept Search and LSI
  17. 【Java】【路径】
  18. Maven项目的生命周期
  19. A:LinkedList实现了List接口; B: AbstractSet实现了Set接口; C: HashSet继承自AbstractSet基类; D: WeakMap继承自 AbstractMap
  20. debian上安装docker ce

热门文章

  1. 内存泄漏定位工具之 valgrind 使用
  2. 2m高分辨率土地利用分类数据
  3. AMS1117降压电路
  4. vue3代码编写
  5. ServerlessBench 2.0:华为云联合上海交大发布Serverless基准测试平台
  6. BufferedWriter字符缓冲输出流和BufferedReader字符缓冲输入流
  7. 手动注入bean到spring容器
  8. html的基础01
  9. 基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境
  10. 利用DockerHub在Centos7.7环境下部署Nginx反向代理Gunicorn+Flask独立架构