python按比例随机切分数据的实现


Posted in Python onJuly 11, 2019

在机器学习或者深度学习中,我们常常碰到一个问题是数据集的切分。比如在一个比赛中,举办方给我们的只是一个带标注的训练集和不带标注的测试集。其中训练集是用于训练,而测试集用于已训练模型上跑出一个结果,然后提交,然后举办方验证结果给出一个分数。但是我们在训练过程中,可能会出现过拟合等问题,会面临着算法和模型的选择,此时,验证集就显得很重要。通常,如果数据量充足,我们会从训练集中划分出一定比例的数据来作为验证集。

每次划分数据集都手动写一个脚本,重复性太高,因此将此简单的脚本放到自己的博客。代码如下:

import random

def split(full_list,shuffle=False,ratio=0.2):
  n_total = len(full_list)
  offset = int(n_total * ratio)
  if n_total==0 or offset<1:
    return [],full_list
  if shuffle:
    random.shuffle(full_list)
  sublist_1 = full_list[:offset]
  sublist_2 = full_list[offset:]
  return sublist_1,sublist_2


if __name__ == "__main__":
  li = range(5)
  sublist_1,sublist_2 = split(li,shuffle=True,ratio=0.2)

  print sublist_1,len(sublist_1)
  print sublist_2,len(sublist_2)

其中,main为测试代码。假如训练集给出的是一个文件,我们先将文件读到列表中,然后再调用split。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python接收Gmail新邮件并发送到gtalk的方法
Mar 10 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
PyQt5每天必学之单行文本框
Apr 19 Python
深入理解Django自定义信号(signals)
Oct 15 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
在Pycharm中修改文件默认打开方式的方法
Jan 17 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
python文件和文件夹复制函数
Feb 07 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
Jun 10 Python
python设置中文界面实例方法
Oct 27 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 #Python
Python循环结构的应用场景详解
Jul 11 #Python
python列表,字典,元组简单用法示例
Jul 11 #Python
python实现数据分析与建模
Jul 11 #Python
新手如何发布Python项目开源包过程详解
Jul 11 #Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 #Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 #Python
You might like
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
js中typeof的用法汇总
2013/12/12 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
knockoutjs模板实现树形结构列表
2017/07/31 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
Fetch超时设置与终止请求详解
2019/05/18 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python 操作文件的基本方法总结
2017/08/10 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
一道写SQL的面试题和答案
2013/11/19 面试题
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
加拿大探亲邀请信
2014/01/28 职场文书
机关工会工作总结2015
2015/05/26 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
详解Spring事件发布与监听机制
2021/06/30 Java/Android
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript