Python数据科学手册-机器学习: 流形学习
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个邻节点。

Python数据科学手册-机器学习: 流形学习的更多相关文章
- Python数据科学手册-机器学习介绍
机器学习分为俩类: 有监督学习 supervised learning 和 无监督学习 unsupervised learning 有监督学习: 对数据的若干特征与若干标签之间 的关联性 进行建模的过 ...
- Python数据科学手册-机器学习: k-means聚类/高斯混合模型
前面学习的无监督学习模型:降维 另一种无监督学习模型:聚类算法. 聚类算法直接冲数据的内在性质中学习最优的划分结果或者确定离散标签类型. 最简单最容易理解的聚类算法可能是 k-means聚类算法了. ...
- Python数据科学手册-机器学习:朴素贝叶斯分类
朴素贝叶斯模型 朴素贝叶斯模型是一组非常简单快速的分类方法,通常适用于维度非常高的数据集.因为运行速度快,可调参数少.是一个快速粗糙的分类基本方案. naive Bayes classifiers 贝 ...
- Python数据科学手册-机器学习之模型验证
模型验证 model validation 就是在选择 模型 和 超参数 之后.通过对训练数据进行学习.对比模型对 已知 数据的预测值和实际值 的差异. 错误的模型验证方法. 用同一套数据训练 和 评 ...
- Python数据科学手册-机器学习: 主成分分析
PCA principal component analysis 主成分分析是一个快速灵活的数据降维无监督方法, 可视化一个包含200个数据点的二维数据集 x 和 y有线性关系,无监督学习希望探索x值 ...
- Python数据科学手册-机器学习: 决策树与随机森林
无参数 算法 随机森林 随机森林是一种集成方法,集成多个比较简单的评估器形成累计效果. 导入标准程序库 随机森林的诱因: 决策树 随机森林是建立在决策树 基础上 的集成学习器 建一颗决策树 二叉决策树 ...
- Python数据科学手册-机器学习: 支持向量机
support vector machine SVM 是非常强大. 灵活的有监督学习算法, 可以用于分类和回归. 贝叶斯分类器,对每个类进行了随机分布的假设,用生成的模型估计 新数据点 的标签.是属于 ...
- Python数据科学手册-机器学习:线性回归
朴素贝叶斯是解决分类任务的好起点,线性回归是解决回归任务的好起点. 简单线性回归 将数据拟合成一条直线. y = ax + b , a 是斜率, b是直线截距 原始数据如下: 使用LinearRegr ...
- Python数据科学手册-机器学习之特征工程
特征工程常见示例: 分类数据.文本.图像. 还有提高模型复杂度的 衍生特征 和 处理 缺失数据的填充 方法.这个过程被叫做向量化.把任意格式的数据 转换成具有良好特性的向量形式. 分类特征 比如房屋数 ...
随机推荐
- S32Kxxx bootloader之UDS bootloader
了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 两周前完成了基于UDS ...
- 实时数据引擎系列(五): 关于 SQL Server 与 SQL Server CDC
摘要:在企业客户里, SQL Server 在传统的制造业依然散发着持久的生命力,SQL Server 的 CDC 复杂度相比 Oracle 较低, 因此标准的官方派做法就是直接使用这个 CDC ...
- Tapdata 肖贝贝:实时数据引擎系列(四)-关于 Oracle 与 Oracle CDC
摘要:想实现 Oracle 的 CDC,排除掉一些通用的比如全量比对, 标记字段获取之外, 真正的增量形式获取变更, 有三种办法: Logminer .XStream .裸日志解析,但不管哪种方法 ...
- CSS Houdini:用浏览器引擎实现高级CSS效果
vivo 互联网前端团队-Wei Xing Houdini被称之为Magic of styling and layout on the web,看起来十分神秘,但实际上,Houdini并非什么神秘组织 ...
- 抢先体验! 在浏览器里写 Flutter 是一种什么体验?
Invertase 是一间位于英国的开源软件制作公司.主要构建关于开发者工具.SDK 等应用程序,早在 Flutter 2.2 的时候,Invertase 团队就开始帮助构建和贡献 Firebase ...
- [SWPU2019]Web1-1|SQL注入
1.打开之后界面如下: 2.查看源代码.登录注入等未发现有用信息,结果如下: 3.进行注册试试,注册时发现admin账户已被注册,随便注册一个账户并登录,结果如下: 申请发布广告页面如下: 4.发布广 ...
- BZOJ1874 「一本通 6.7 练习 1」【一本通提高博弈论】取石子游戏
「一本通 6.7 练习 1」取石子游戏 题目描述 小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,每次取石子的个数有限制,谁不能取石子时就会输掉游 ...
- 使用flex防止fit-content子元素冲出父元素宽度的方法
父元素设置了min-width:fit-content后,其宽度由子元素的宽度来决定 <!DOCTYPE html> <html lang="en"> &l ...
- 缓冲流的原理和BufferedOutputStream字节缓冲输出流
缓冲流的原理 BufferedOutputStream字节缓冲输出流 package com.yang.Test.BufferedStudy; import java.io.BufferedOutpu ...
- std::hash<std::pair<int, int> >
标题是搞笑的 ! 这个问题只需要 since C++11 问题:怎么让 unordered_map 支持使用 pair 作为 key? 如果你能把两个东西压到一个基本类型里那么就不用解决这个问题了 . ...