【数据集划分】误用shuffle,导致训练集和测试集掺混
目录
- 问题阐述:
- 回溯:
- 解决办法
- 备注
问题阐述:
由于本人训练的模型在训练集和测试集上都抛出了100%的精度,不由对数据集划分的操作产生了。
回溯:
由于一些不便的原因,本人所用到的数据集都是对加载到缓存中的数据切边变形得到的。所以本人思路是对生成的数据集dataset打乱一次,然后再按比例划分训练集和测试集。
下面本人的错误程序
dataset=tf.data.Dataset.from_tensor_slices((features, labels))
#打乱总数据集
dataset = dataset.shuffle(buffer_size=len(features))#75%的数据用作训练集
dataset_train=dataset.take(int(0.75*len(features))).batch(60)#剩下%25的数据用作测试集
dataset_test=dataset_train.skip(int(0.75*len(features))).batch(60)
错在哪里呢?
shuffle(buffer_size, seed=None,reshuffle_each_iteration=True)
tf.Dataset.shuffle方法中默认reshuffle_each_iteration=True,即下次对dataset操作(如切片、复制、取batch)时都会再次执行洗牌操作。
在上文程序中,即dataset.take()与dataset.skip()操作中都各自是对原dataset洗了一次牌。因此发生了掺混。
解决办法
dataset=tf.data.Dataset.from_tensor_slices((features, labels))
#打乱总数据集,以维持样本平衡
dataset = dataset.shuffle(buffer_size=len(features), reshuffle_each_iteration=True)#75%的数据用作训练集
dataset_train=dataset.take(int(0.75*len(features))).batch(60).shuffle(int(0.75*len(features)))#剩下%25的数据用作测试集
dataset_test=dataset_train.skip(int(0.75*len(features))).batch(60)
1. dataset中shuffle属性设置
reshuffle_each_iteration=True
2. 对训练集单独执行shuffle方法。
备注
- dir() 可以查看dataset的属性。
- dataset是一种可迭代对象,可以用for函数迭代。
for element in dataset
- as_numpy_iterator可以把tf.Dataset对象中的内容转化为数组。
【数据集划分】误用shuffle,导致训练集和测试集掺混相关推荐
- 机器学习中训练集和测试集归一化(matlab版)
转载自 https://blog.csdn.net/lkj345/article/details/50352385 背景介绍: 归一化后加快了梯度下降求最优解的速度,归一化有可能提高精度. 训练集 ...
- python划分数据集用pandas_用pandas划分数据集实现训练集和测试集
1.使用model_select子模块中的train_test_split函数进行划分 数据:使用kaggle上Titanic数据集 划分方法:随机划分 # 导入pandas模块,sklearn中mo ...
- iris数据集_sklearn日志(二)训练集和测试集划分
机器学习算法需要大量的数据,这些数据一部分用于模型训练,另一部分作为测试或验证. 机器学习入坑者:sklearn日志(一)体验官方提供的标准数据集zhuanlan.zhihu.com sklearn ...
- 【自存代码】划分数据集为训练集和测试集
[自存代码]划分image和label为训练集和测试集 修改自这位大佬的代码:https://blog.csdn.net/weixin_47414034/article/details/1254793 ...
- 31,32,33_过拟合、欠拟合的概念、L2正则化,Pytorch过拟合欠拟合,交叉验证-Train-Val-Test划分,划分训练集和测试集,K-fold,Regularization
1.26.过拟合.欠拟合及其解决方案 1.26.1.过拟合.欠拟合的概念 1.26.1.1.训练误差和泛化误差 1.26.1.2.验证数据集与K-fold验证 1.26.1.3.过拟合和欠拟合 1.2 ...
- sklearn.model_selection.train_test_split随机划分训练集和测试集
1 函数用途 train_test_split()是交叉验证中常用的函数,功能是将数组或矩阵按比例随机划分为训练集和测试集,使用方法为: X_train,X_test, y_train, y_test ...
- 深度学习之数据处理——如何将图片和标签打乱并划分为训练集和测试集
深度学习之数据处理--如何将图片和标签打乱并划分为训练集和测试集 记录我的第一篇CSDN博客 最近我在网上找到Office31数据集,这个数据集中包含了三个子数据集,分别为:Amazon.dslr.w ...
- python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解
文章目录 train_test_split()用法 获取数据 划分训练集和测试集 完整代码脚手架 train_test_split()用法 python机器学习中常用 train_test_split ...
- 5.sklearn之转换器(划分训练集和测试集、以及标准化、归一化数据会用transform,独热编码也会用到)
文章目录 1. 什么是转换器? 2. 测试集和训练集 2.1 训练集 .测试集.验证集 2.2 拆分训练集测试集有个问题 2.3 代码 3. 标准化 3.1 上离差标准化代码(举一反三就好了,其他几个 ...
- idea2020.2中@test是怎么测试的_Sklearn 划分训练集和测试集
[从零开始学机器学习第 03 篇] 摘要:手写 Sklearn 的 train_test_split 函数. 之前两篇文章以酒吧的红酒故事引出了 kNN 分类算法,根据已倒好的酒(样本),预测新倒的酒 ...
最新文章
- HtmlAgilityPack 处理通配的contains
- linux的shell的功能,linux shell中${ }的一些特异功能
- 用image控件不能正常显示Sql server2000数据库中的图片
- 初学Java Web(7)——文件的上传和下载
- ajax校验的优点,django框架中ajax的使用及避开CSRF 验证的方式详解
- 2021年已经过去了4天,创业者、负债累累而希望通过再创业实现东山再起者,你们准备的怎么样了?
- java 下载项目中的文件_java 下载web项目目录下的文件
- docker volume源码分析
- oracle账户用root权限执行sh,安装Oracle执行orainstRoot.sh与root.sh作用
- 19种音频格式介绍及音质压缩比的比较
- 哈佛专家推荐5种最健康食物
- JS图片显示与隐藏案例
- 迎风面投影指数迎风面密度计算工具及计算实例经验分享
- 浙江最好的计算机学校,浙江2021年什么计算机学校最好
- 【嵌入式12】DMA通信原理及编程实验,DMA方式向上位机连续发送数据
- 45岁以后,外企的人都到去哪里了呢?(转载:岭南一梦)
- 06_JavaScript数据结构与算法(六)单向链表
- Docker-redis集群+混合持久化
- Docking (分子对接技术)、分子动力学、Gromacs的关系
- 元宇宙成数字经济发展“排头兵”,中国移动咪咕“头雁先飞”
热门文章
- Bladex Workflow工作流引擎开发进阶-版本v1.2.2
- JDK-8274609 JEP 421: Deprecate Finalization for Removal
- 2021.3.30-Robocup 2D学习日志
- eclipse 安装jetty WTP Adaptor插件
- 新建web.xml文件头报错报红xmlns=http://xmlns.jcp.org/xml/ns/javaee,http://xmlns.jcp.org/xml/ns/javaee/web-ap
- logback MDC线上问题快速定位神器
- R shiny 交互式表格
- android项目飞机大战,飞机大战android版源代码
- Excel制作工资条
- 格拉姆-施密特过程的程序实现