目录

  •   问题阐述:
  •   回溯:
  •   解决办法
  •   备注

  问题阐述:

  由于本人训练的模型在训练集和测试集上都抛出了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方法。

  备注

  1. dir() 可以查看dataset的属性。
  2. dataset是一种可迭代对象,可以用for函数迭代。
for element in dataset
  1. as_numpy_iterator可以把tf.Dataset对象中的内容转化为数组。

【数据集划分】误用shuffle,导致训练集和测试集掺混相关推荐

  1. 机器学习中训练集和测试集归一化(matlab版)

    转载自   https://blog.csdn.net/lkj345/article/details/50352385 背景介绍: 归一化后加快了梯度下降求最优解的速度,归一化有可能提高精度. 训练集 ...

  2. python划分数据集用pandas_用pandas划分数据集实现训练集和测试集

    1.使用model_select子模块中的train_test_split函数进行划分 数据:使用kaggle上Titanic数据集 划分方法:随机划分 # 导入pandas模块,sklearn中mo ...

  3. iris数据集_sklearn日志(二)训练集和测试集划分

    机器学习算法需要大量的数据,这些数据一部分用于模型训练,另一部分作为测试或验证. 机器学习入坑者:sklearn日志(一)体验官方提供的标准数据集​zhuanlan.zhihu.com sklearn ...

  4. 【自存代码】划分数据集为训练集和测试集

    [自存代码]划分image和label为训练集和测试集 修改自这位大佬的代码:https://blog.csdn.net/weixin_47414034/article/details/1254793 ...

  5. 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 ...

  6. sklearn.model_selection.train_test_split随机划分训练集和测试集

    1 函数用途 train_test_split()是交叉验证中常用的函数,功能是将数组或矩阵按比例随机划分为训练集和测试集,使用方法为: X_train,X_test, y_train, y_test ...

  7. 深度学习之数据处理——如何将图片和标签打乱并划分为训练集和测试集

    深度学习之数据处理--如何将图片和标签打乱并划分为训练集和测试集 记录我的第一篇CSDN博客 最近我在网上找到Office31数据集,这个数据集中包含了三个子数据集,分别为:Amazon.dslr.w ...

  8. python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解

    文章目录 train_test_split()用法 获取数据 划分训练集和测试集 完整代码脚手架 train_test_split()用法 python机器学习中常用 train_test_split ...

  9. 5.sklearn之转换器(划分训练集和测试集、以及标准化、归一化数据会用transform,独热编码也会用到)

    文章目录 1. 什么是转换器? 2. 测试集和训练集 2.1 训练集 .测试集.验证集 2.2 拆分训练集测试集有个问题 2.3 代码 3. 标准化 3.1 上离差标准化代码(举一反三就好了,其他几个 ...

  10. idea2020.2中@test是怎么测试的_Sklearn 划分训练集和测试集

    [从零开始学机器学习第 03 篇] 摘要:手写 Sklearn 的 train_test_split 函数. 之前两篇文章以酒吧的红酒故事引出了 kNN 分类算法,根据已倒好的酒(样本),预测新倒的酒 ...

最新文章

  1. HtmlAgilityPack 处理通配的contains
  2. linux的shell的功能,linux shell中${ }的一些特异功能
  3. 用image控件不能正常显示Sql server2000数据库中的图片
  4. 初学Java Web(7)——文件的上传和下载
  5. ajax校验的优点,django框架中ajax的使用及避开CSRF 验证的方式详解
  6. 2021年已经过去了4天,创业者、负债累累而希望通过再创业实现东山再起者,你们准备的怎么样了?
  7. java 下载项目中的文件_java 下载web项目目录下的文件
  8. docker volume源码分析
  9. oracle账户用root权限执行sh,安装Oracle执行orainstRoot.sh与root.sh作用
  10. 19种音频格式介绍及音质压缩比的比较
  11. 哈佛专家推荐5种最健康食物
  12. JS图片显示与隐藏案例
  13. 迎风面投影指数迎风面密度计算工具及计算实例经验分享
  14. 浙江最好的计算机学校,浙江2021年什么计算机学校最好
  15. 【嵌入式12】DMA通信原理及编程实验,DMA方式向上位机连续发送数据
  16. 45岁以后,外企的人都到去哪里了呢?(转载:岭南一梦)
  17. 06_JavaScript数据结构与算法(六)单向链表
  18. Docker-redis集群+混合持久化
  19. Docking (分子对接技术)、分子动力学、Gromacs的关系
  20. 元宇宙成数字经济发展“排头兵”,中国移动咪咕“头雁先飞”

热门文章

  1. Bladex Workflow工作流引擎开发进阶-版本v1.2.2
  2. JDK-8274609 JEP 421: Deprecate Finalization for Removal
  3. 2021.3.30-Robocup 2D学习日志
  4. eclipse 安装jetty WTP Adaptor插件
  5. 新建web.xml文件头报错报红xmlns=http://xmlns.jcp.org/xml/ns/javaee,http://xmlns.jcp.org/xml/ns/javaee/web-ap
  6. logback MDC线上问题快速定位神器
  7. R shiny 交互式表格
  8. android项目飞机大战,飞机大战android版源代码
  9. Excel制作工资条
  10. 格拉姆-施密特过程的程序实现