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数据科学手册-机器学习: 流形学习的更多相关文章

  1. Python数据科学手册-机器学习介绍

    机器学习分为俩类: 有监督学习 supervised learning 和 无监督学习 unsupervised learning 有监督学习: 对数据的若干特征与若干标签之间 的关联性 进行建模的过 ...

  2. Python数据科学手册-机器学习: k-means聚类/高斯混合模型

    前面学习的无监督学习模型:降维 另一种无监督学习模型:聚类算法. 聚类算法直接冲数据的内在性质中学习最优的划分结果或者确定离散标签类型. 最简单最容易理解的聚类算法可能是 k-means聚类算法了. ...

  3. Python数据科学手册-机器学习:朴素贝叶斯分类

    朴素贝叶斯模型 朴素贝叶斯模型是一组非常简单快速的分类方法,通常适用于维度非常高的数据集.因为运行速度快,可调参数少.是一个快速粗糙的分类基本方案. naive Bayes classifiers 贝 ...

  4. Python数据科学手册-机器学习之模型验证

    模型验证 model validation 就是在选择 模型 和 超参数 之后.通过对训练数据进行学习.对比模型对 已知 数据的预测值和实际值 的差异. 错误的模型验证方法. 用同一套数据训练 和 评 ...

  5. Python数据科学手册-机器学习: 主成分分析

    PCA principal component analysis 主成分分析是一个快速灵活的数据降维无监督方法, 可视化一个包含200个数据点的二维数据集 x 和 y有线性关系,无监督学习希望探索x值 ...

  6. Python数据科学手册-机器学习: 决策树与随机森林

    无参数 算法 随机森林 随机森林是一种集成方法,集成多个比较简单的评估器形成累计效果. 导入标准程序库 随机森林的诱因: 决策树 随机森林是建立在决策树 基础上 的集成学习器 建一颗决策树 二叉决策树 ...

  7. Python数据科学手册-机器学习: 支持向量机

    support vector machine SVM 是非常强大. 灵活的有监督学习算法, 可以用于分类和回归. 贝叶斯分类器,对每个类进行了随机分布的假设,用生成的模型估计 新数据点 的标签.是属于 ...

  8. Python数据科学手册-机器学习:线性回归

    朴素贝叶斯是解决分类任务的好起点,线性回归是解决回归任务的好起点. 简单线性回归 将数据拟合成一条直线. y = ax + b , a 是斜率, b是直线截距 原始数据如下: 使用LinearRegr ...

  9. Python数据科学手册-机器学习之特征工程

    特征工程常见示例: 分类数据.文本.图像. 还有提高模型复杂度的 衍生特征 和 处理 缺失数据的填充 方法.这个过程被叫做向量化.把任意格式的数据 转换成具有良好特性的向量形式. 分类特征 比如房屋数 ...

随机推荐

  1. HiEngine:可媲美本地的云原生内存数据库引擎

    摘要:HiEngine与华为GaussDB (for MySQL)集成,将内存数据库引擎的优势带到云端,并与基于磁盘的引擎共存.HiEngine的性能比传统的以存储为中心的解决方案高出7.5倍. 本文 ...

  2. 准备java编程软件与第一个java程序

    我们要用的java的编程软件叫做:eclipse windows上安装eclipse 首先需要一个浏览器 要下载eclipse最简单的方式就是在官网下载  官网:https://www.eclipse ...

  3. spingboot打jar包

    pom.xml文件中packaging为jar <packaging>jar</packaging> 安装插件 <plugin> <groupId>or ...

  4. 初始化二维列表时使用[ [0]* N ] * K会出现的问题

    声明二维列表使用[ [0]* N ] * K会出现的问题 初始化二维列表时使用[ [0]* N ] * K创建,外层列表的每一个元素地址相同: 创造了一个二维列表: 修改其中的一个元素a[1][1], ...

  5. 项目中使用@Transactional需要注意的点

    项目如果是Spring Boot.或者Spring Cloud,切记需要在启动类上加入@EnableTransactionManagement该注解.否则事务不生效. @Transactional是一 ...

  6. C++基本数据类型范围和区别(详细)

    一.基本类型的大小及范围的总结(以下所讲都是默认在32位操作系统下):字节:byte:位:bit.1.短整型short:所占内存大小:2byte=16bit:所能表示范围:-32768~32767:( ...

  7. 161_可视化_Power BI 复刻 GitHub 贡献热力图

    161_可视化_Power BI 复刻 GitHub 贡献热力图 一.背景 在 GitHub 上,有用户的贡献度的热力图如下: Power BI 公共 web 效果:https://demo.jiao ...

  8. lombok的常用注解

    出处: https://blog.csdn.net/sunnyzyq/article/details/119992746 1. @Accessors 源码 我们打开 @Accessors 的源码可以看 ...

  9. 【万字长文】使用 LSM-Tree 思想基于.Net 6.0 C# 实现 KV 数据库(案例版)

    文章有点长,耐心看完应该可以懂实际原理到底是啥子. 这是一个KV数据库的C#实现,目前用.NET 6.0实现的,目前算是属于雏形,骨架都已经完备,毕竟刚完工不到一星期. 当然,这个其实也算是NoSQL ...

  10. linux常见命令搜集

    查找根目录下txt和pdf文件 find / \( -name "*.txt" -o -name "*.pdf" \) -print 正则查找根目录下所有的tx ...