取 shuffle 的过程其实可看做从全排列中随机选择一个的过程。

稍微比较麻烦的是实现特征向量与类别标签的同步shuffle。

如果这里数据集既包含特征向量又包括标签值,可直接调用np.random.shuffle()方法:

>>> np.random.shuffle(training_data)
>>> X = training_data[:, :-1]
>>> y = trianing_data[:, -1]

如果已对数据集的特征向量与类别标签列进行分离,这里提供两种方式进行同步shuffle:

1. 使用 np.random.shuffle()

  • X, y 同时进行 shuffle

    >>> training_data = np.hstack(X, y)
    >>> np.random.shuffle(training_data)
    >>> X = training_data[:, :-1]
    >>> y = training_data[:, -1]
    
  • 根据 indices 进行shuffle

    indices = np.arange(X.shape[0])
    np.random.shuffle(indices)
    X = X[indices]
    y = y[indices]
    

2. np.random.permutation() 对行索引进行一次全排列

>>> r = np.random.permutation(len(y))# 随机地从全排列中选取一个,实现 shuffle
>>> X = X[r, :]
>>> y = [r]

3. shuffle

上文所述皆是对矩阵的行(样本矩阵的每一个样本)进行 shuffle,那么该如何 shuffle 矩阵的列呢(也即样本矩阵的每一个属性)。

仍然存在两种方案,

  • np.random.shuffle()

    因为 np.random.shuffle() 直接对原始矩阵进行修改(返回值为NoneType),且不接受另外的参数,我们可对原始矩阵的转置 shuffle 之后,再转置

    >>> training_data = np.hstack(X, y)
    >>> training_data = training_data.T
    >>> np.random.shuffle(training_data)
    >>> training_data = training_data.T
    >>> X = training_data[:, :-1]
    >>> y = training_data[:, -1]
    
  • np.random.permutation() 对列索引进行一次全排列

    # 此时 y 参与 shuffle
    >>> r = np.random.permutation(X.shape[1])
    >>> X[:, r]
    

Python机器学习——如何shuffle一个数据集(ndarray类型)相关推荐

  1. python环境配置及参数_搭建python机器学习环境以及一个机器学习例子

    这篇文章介绍了Python机器学习环境的搭建,我用的机器学习开源工具是scikit-learn.下面具体介绍环境搭建以及遇到的一些问题.所有可能需要的软件都可在官网下载,或者在我的百度网盘下载:htt ...

  2. Python机器学习-搭建神经网络以及数据集引入和断点续存

    前言 本文旨在通过Python编程角度进行机器学习神经网络的引导,需要掌握基础的全连接神经网络基础,这包括了神经网络全连接层的结构,权重模板与偏置的作用,节点的处理方法.在掌握这些知识之后,本文将从代 ...

  3. 脑电分析系列[MNE-Python-5]| Python机器学习算法随机森林判断睡眠类型

    案例介绍 本案例通过对多导睡眠图(Polysomnography,PSG)数据进行睡眠阶段的分类来判断睡眠类型. 训练:对Alice的睡眠数据进行训练: 测试:利用训练结果对Bob的睡眠数据进行测试, ...

  4. Python机器学习:train_test_split()划分数据集

    调用sklearn里面的model_selection包的train_test_split()函数可以一行代码划分好数据集. 包名: from sklearn.model_selection impo ...

  5. Python机器学习Sklearn入门之神经网络

    Python机器学习Sklearn入门之神经网络 MLP 神经网络算法 MLP 神经网络算法函数位于 neural_network 神经网络模块,函数名是 MLPClassifier,接口是 MLPC ...

  6. python机器学习——决策树(分类)及“泰坦尼克号沉船事故”数据集案例操作

    决策树(分类)及具体案例操作 一.决策树(分类)算法 (1)算法原理(类似于"分段函数") (2)决策树的变量类型 (3)量化纯度 (4)基本步骤 (5)决策树的优缺点 二.决策树 ...

  7. python 机器学习——K 近邻分类理论及鸢尾( Iris )数据集实例操作

    K 近邻分类理论及鸢尾( Iris )数据集实例操作 一.K 近邻分类理论 二.K 近邻分类实例操作 (1)导入数据 划分训练集测试集 (3)数据标准化 (4)用 K 近邻法建立模型 (5)性能评估 ...

  8. 慕课Python机器学习应用-代码实现(详细注释+数据集)

    课程链接:Python机器学习应用_北京理工大学_中国大学MOOC(慕课) 学习和实现的算法有Kmeans和DBSCAN,数据集是自己在网上搜集的,在我的资源区提供免费下载. Kmeans算法: 1. ...

  9. Python机器学习实践指南pdf (中文版带书签)、原书代码、数据集

    Python机器学习实践指南 目 录  第1章Python机器学习的生态系统 1  1.1 数据科学/机器学习的工作  流程 2  1.1.1 获取 2  1.1.2 检查和探索 2  1.1.3 清 ...

最新文章

  1. ThinkPHP入门(二)
  2. 恶意软件每天至少30万个变种 杀毒软件捉襟见肘 来看4种恶意软件反查杀技术...
  3. python如何编程-编程零基础应当如何开始学习 Python?
  4. 基于Linux的集群系统(八)--转
  5. Visio studio 2019中opencv 4.1.1运行环境配置(亲测可用)
  6. FragmentStatePagerAdapter和FragmentPagerAdapter区别
  7. 远程控制漏洞CNVD-2022-10270/CNVD-2022-03672 向日葵RCE复现与解决
  8. 读《深入分析Java Web技术内幕》
  9. centen os7安装maven
  10. CentOS-6 通过rsync下载yum源
  11. 自动驾驶_基于强化学习的自动驾驶系统
  12. 基于 Flink+Iceberg 构建企业级实时数据湖
  13. RGB_LED,WS2811彩带驱动设计
  14. 做微商不推广,也能赚钱?
  15. Accer 4752G添加固态硬盘 双系统
  16. 相关性和差异的显著性
  17. 联想M7400Pro打印满张纸黑
  18. python text函数_python可视化text()函数使用详解
  19. java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
  20. windows遥测_Windows 7的2019年7月安全补丁包括遥测

热门文章

  1. 新增页和列表页遇到的坑
  2. linux端口扫描脚本ip段,shell脚本结合iptables防端口扫描的实现
  3. spring的部分注释
  4. ediplus 复制编辑一列_Excel中如何使用公式查找一列中的重复值并且在另一列里面列出来...
  5. 在VS工程中添加lib库的三种方法
  6. windows下执行tensorflow/models的代码显示No module named ‘object_detection‘
  7. java 分隔函数split(,-1)的用途
  8. 前端性能毫秒必争综合方案
  9. 在二叉搜索树(BST)中查找第K个大的结点之非递归实现
  10. SQL Server 2008 R2 中英文 开发版/企业版/标准版 链接地址