机器学习数据顺序随机打乱:Python实现
本文介绍基于Python语言,实现机器学习、深度学习等模型训练时,数据集打乱的具体操作。
1 为什么要打乱数据集
在机器学习中,如果不进行数据集的打乱,则可能导致模型在训练过程中出现具有“偏见”的情况,降低其泛化能力,从而降低训练精度。例如,如果我们做深度学习的分类,其中初始数据的前80%都是第一类,后20%都是第二类,那么如果我们不打乱数据,模型按照数据顺序依次加以训练,则在前面大部分数据中训练出来的结果都是第一类(即形成了惯性,模型认为这些数据只对应着第一类);而到后20%数据进行训练时,所得结果也往往全都为第一类;所以要打乱。
2 如何打乱
首先引入random。
import random
2.1 数据特征与标签均为一维
DataIndex=[i for i in range(len(TrainX))]
random.shuffle(DataIndex)
TrainX=TrainX[DataIndex]
TrainY=TrainY[DataIndex]
其中,TrainX为一维的训练数据特征,TrainY为一维的训练数据标签。
2.2 数据特征为多维而标签为一维
Datasets=tf.data.Dataset.from_tensor_slices((dict(TrainX),TrainY))
Datasets=Datasets.shuffle(1000)
其中,TrainX需要为多维DataFrame格式的训练数据特征,TrainY为一维Series格式的训练数据标签。但是经过这种方法,我们得到的Datasets为Dataset类的数据,若是接下来需要带入input_fn还可以,如果想单独取出TrainX和TrainY的话就比较麻烦。
因此,我们还可以直接在初始数据划分训练集与测试集时直接将数据打乱:
TrainData=MyData.sample(frac=TrainFrac,random_state=RandomSeed)
TestData=MyData.drop(TrainData.index)
其中,MyData为初始全部数据,TrainData与TestData分别为划分后的训练集与测试集数据。
经过.sample()这一步骤,与原始数据的Index相比,实际上已经实现了TrainData与TestData的随机排列。
至此,大功告成。
机器学习数据顺序随机打乱:Python实现的更多相关文章
- N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列。设计加密解密算法,且要求K<=15*N.
N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列.设计加密解密算法,且要求K<=15*N. ...
- C++将数组的元素顺序随机打乱
参考: https://blog.csdn.net/cordova/article/details/52884399 https://zhidao.baidu.com/question/1604258 ...
- MSSQL 复制数据 并随机打乱写入
select * into temp from XX order by newid() -- 复制表结构 truncate table XX -- 清空表 SET IDENTITY_INSERT XX ...
- Python 如何随机打乱列表(List)排序
场景: 现在有一个list:[1,2,3,4,5,6],我需要把这个list在输出的时候,是以一种随机打乱的形式输出. 专业点的术语:将一个容器中的数据每次随机逐个遍历一遍. 注意:不是生成一个随机的 ...
- Python代码阅读(第10篇):随机打乱列表元素
本篇阅读的代码实现了随机打乱列表元素的功能,将原有列表乱序排列,并返回一个新的列表(不改变原有列表的顺序). 本篇阅读的代码片段来自于30-seconds-of-python. shuffle fro ...
- php保留键随机打乱数组顺序
最近遇到一个需求,把一个数组随机打乱顺序,我们可以用php的shuffle函数,但是这个函数会把数组的键清空建立新的键,那么我们若想保留键只需要利用shuffle函数再做一下处理就可以了.可以自定义一 ...
- 2017数据科学报告:机器学习工程师年薪最高,Python最常用
2017数据科学报告:机器学习工程师年薪最高,Python最常用 2017-11-03 11:05 数据平台 Kaggle 近日发布了2017 机器学习及数据科学调查报告,针对最受欢迎的编程语言.不同 ...
- 营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理
摘要:你知道吗,MySQL在实际工作时候的两种数据读写机制? 本文分享自华为云社区<MySQL日志顺序读写及数据文件随机读写原理>,作者:JavaEdge . MySQL在实际工作时候的两 ...
- python yaml文件数据按原有的数据顺序dump
yml文件的更新后工具类: import os import yaml class YamlUtils(): def __init__(self,folder_name='config'): self ...
- C#随机打乱列表List元素顺序
C#随机打乱列表List项目顺序 以下泛型扩展方法,实现了随机打乱泛型列表List<T>的功能 public static List<t> DisorderItems<t ...
随机推荐
- 密码破解-hashcat的简单使用
在我们抓取到系统的hash值之后,需要通过一些工具来破解密码 hashcat是一款可以基于显卡暴力破解密码的工具,几乎支持了所有常见的加密,并且支持各种姿势的密码搭配 在kali Linux中自带的有 ...
- Android笔记--视图显示
视图显示 视图的宽高设置 方式一:在.xml文件中设置视图的宽和高 通过调用android:layout_width设置视图的宽 通过调用android:layout_height设置视图的高 宽和高 ...
- CURL 常用命令
参考博客:https://blog.csdn.net/wangpengfei163/article/details/80900391
- 浅谈js防抖和节流
防抖和节流是处理高频触发最常见的优化方式,对性能提升有很大的帮助. 防抖:将多次的高频操作优化为只在最后一次执行,应用场景如:输入框,只需在最后一次输入进行校验即可. 节流:保证每隔一段时间只执行一次 ...
- SQL注入,Hacker入侵数据是如何做到的
什么是SQL注入? SQL注入就是未将代码与数据进行严格的隔离,导致在读取用户数据的时候,错误地把黑客注入的数据作为代码的一部分执行. SQL注入自诞生以来以其巨大的杀伤力闻名. 例子: 典型的SQL ...
- 王树森Transformer学习笔记
目录 Transformer Attention结构 Self-Attention结构 Multi-head Self-Attention BERT:Bidirectional Encoder Rep ...
- eval有时候也可以用,而且有奇效
eval,一个我曾经避之不及的函数,最近我对它产生了一点新的感触:eval有时候也可以用,有奇效. 一般在使用js进行开发时,是不建议使用eval这类函数的.在JavaScript中,eval可以计算 ...
- 剑指 offer 第 3 天
第 3 天 字符串(简单) 剑指 Offer 05. 替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are h ...
- NLP 开源形近字算法之相似字列表(番外篇)
创作目的 国内对于文本的相似度计算,开源的工具是比较丰富的. 但是对于两个汉字之间的相似度计算,国内基本一片空白.国内的参考的资料少的可怜,国外相关文档也是如此. 本项目旨在抛砖引玉,实现一个基本的相 ...
- nginx+vite 项目打包及部署到服务器二级路由
项目打包及部署到服务器二级路由 例如:我希望将打包的项目部署到 http://localhost:8088/web/ 上 一. 项目配置及打包 项目部署到服务器二级路由需要配置基础路径base,即需要 ...