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. CSS 盒子模型(一)

    CSS 盒子模型(一) 本人在校学生,主学后端,后来发现前端的基础都忘得差不多了才想着写文章回来复习!欢迎留言交流. 什么是盒子呢? 拿下举例,我们可以把每个红框都比作一个盒子,他们可以是任意的 HT ...

  2. 基于单层决策树的AdaBoost算法原理+python实现

    这里整理一下实验课实现的基于单层决策树的弱分类器的AdaBoost算法. 由于是初学,实验课在找资料的时候看到别人的代码中有太多英文的缩写,不容易看懂,而且还要同时看代码实现的细节.算法的原理什么的, ...

  3. day03 对象流与序列化

    对象流 java.io.ObjectOutputStream和ObjectInputSteam 对象流是一对高级流,在流连接中的作用是进行对象的序列化与反序列化. 对象序列化:将一个java对象按照其 ...

  4. day04 Java_分支_循环

    精华笔记: Scanner接收用户输入的数据:共3步,不需要理解,先背下来 分支结构: if...else if结构:多条路 switch...case结构:多条路 优点:效率高.结构清晰 缺点:只能 ...

  5. 2506-nginx的配置-域名分发与负载均衡(只有配置无原理)

    nginx的安装 Windows7:官网下载,是一个压缩包,运行解压缩后的exe文件即启动了nginx,需注意的是,Windows(win7)的80端口默认被微软的IIS占用,需改成别的端口,例如80 ...

  6. wdos centos64位通过yum来升级PHP

    通过yum list installed | grep php可以查看所有已安装的php软件 使用yum remove php -- 将所有的包删除 通过yum list php*查看是否有自己需要安 ...

  7. Vue $nextTick && 过度与动画

    1 # $nextTick 2 # 1.语法: this.$nextTick(回调函数); 3 # 2.作用:在下一次DOM更新结束后执行其指定的回调. 4 # 3.什么时候用:当改变数据后,要基于更 ...

  8. Python logging日志管理

    import logging logger = logging.getLogger("simple_example") logger.setLevel(logging.DEBUG) ...

  9. PureRandom采样类定义和测试

    此是随机采样算法,效果感觉一般般. 类声明: #pragma once #ifndef __PURERANDOM_HEADER__ #define __PURERANDOM_HEADER__ #inc ...

  10. Radmin自动登录器 v3.0

    Radmin自动登录器 v3.0 - By: ybmj@vip.163.com 20150615 用户手册 下载地址:https://download.csdn.net/download/shuren ...