对python中数据集划分函数StratifiedShuffleSplit的使用详解


Posted in Python onDecember 11, 2018

文章开始先讲下交叉验证,这个概念同样适用于这个划分函数

1.交叉验证(Cross-validation)

交叉验证是指在给定的建模样本中,拿出其中的大部分样本进行模型训练,生成模型,留小部分样本用刚建立的模型进行预测,并求这小部分样本的预测误差,记录它们的平方加和。这个过程一直进行,直到所有的样本都被预测了一次而且仅被预测一次,比较每组的预测误差,选取误差最小的那一组作为训练模型。

下图所示

对python中数据集划分函数StratifiedShuffleSplit的使用详解

2.StratifiedShuffleSplit函数的使用

官方文档

用法:

from sklearn.model_selection import StratifiedShuffleSplit
StratifiedShuffleSplit(n_splits=10,test_size=None,train_size=None, random_state=None)

2.1 参数说明

参数 n_splits是将训练数据分成train/test对的组数,可根据需要进行设置,默认为10

参数test_size和train_size是用来设置train/test对中train和test所占的比例。例如:

1.提供10个数据num进行训练和测试集划分

2.设置train_size=0.8 test_size=0.2

3.train_num=num*train_size=8 test_num=num*test_size=2

4.即10个数据,进行划分以后8个是训练数据,2个是测试数据

注*:train_num≥2,test_num≥2 ;test_size+train_size可以小于1*

参数 random_state控制是将样本随机打乱

2.2 函数作用描述

1.其产生指定数量的独立的train/test数据集划分数据集划分成n组。

2.首先将样本随机打乱,然后根据设置参数划分出train/test对。

3.其创建的每一组划分将保证每组类比比例相同。即第一组训练数据类别比例为2:1,则后面每组类别都满足这个比例

2.3 具体实现

from sklearn.model_selection import StratifiedShuffleSplit
import numpy as np
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4],
 [1, 2],[3, 4], [1, 2], [3, 4]])#训练数据集8*2
y = np.array([0, 0, 1, 1,0,0,1,1])#类别数据集8*1

ss=StratifiedShuffleSplit(n_splits=5,test_size=0.25,train_size=0.75,random_state=0)#分成5组,测试比例为0.25,训练比例是0.75

for train_index, test_index in ss.split(X, y):
 print("TRAIN:", train_index, "TEST:", test_index)#获得索引值
 X_train, X_test = X[train_index], X[test_index]#训练集对应的值
 y_train, y_test = y[train_index], y[test_index]#类别集对应的值

运行结果:

对python中数据集划分函数StratifiedShuffleSplit的使用详解

从结果看出,1.训练集是6个,测试集是2,与设置的所对应;2.五组中每组对应的类别比例相同

以上这篇对python中数据集划分函数StratifiedShuffleSplit的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python字符遍历的艺术
Sep 06 Python
web.py 十分钟创建简易博客实现代码
Apr 22 Python
Python实现的购物车功能示例
Feb 11 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
Django中celery执行任务结果的保存方法
Jul 12 Python
python实现一行输入多个值和一行输出多个值的例子
Jul 16 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
python实现的分析并统计nginx日志数据功能示例
Dec 21 Python
Python3 虚拟开发环境搭建过程(图文详解)
Jan 06 Python
PyTorch中的C++扩展实现
Apr 02 Python
详解python字符串驻留技术
May 21 Python
Python3爬虫学习入门教程
Dec 11 #Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 #Python
python绘制散点图并标记序号的方法
Dec 11 #Python
pandas分别写入excel的不同sheet方法
Dec 11 #Python
使用Python横向合并excel文件的实例
Dec 11 #Python
padas 生成excel 增加sheet表的实例
Dec 11 #Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 #Python
You might like
用PHP读取超大文件的实例代码
2012/04/01 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
深入探讨前端框架react
2015/12/09 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
vue实现图片上传功能
2020/05/28 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
快速入手Python字符编码
2016/08/03 Python
python中的计时器timeit的使用方法
2017/10/20 Python
django使用html模板减少代码代码解析
2017/12/12 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
Python Sphinx使用实例及问题解决
2020/01/17 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
科室工作个人总结的自我评价
2013/10/29 职场文书
中医专业应届生求职信
2013/11/17 职场文书
应届生的求职推荐信范文
2013/11/30 职场文书
老公给老婆的道歉信
2014/01/10 职场文书
班长自荐书范文
2014/02/11 职场文书
自我鉴定总结
2014/03/24 职场文书
销售个人求职信范文
2014/04/28 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL