对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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
python中的函数用法入门教程
Sep 02 Python
python enumerate函数的使用方法总结
Nov 15 Python
简述Python2与Python3的不同点
Jan 21 Python
python如何读写json数据
Mar 21 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
python实现网页自动签到功能
Jan 21 Python
python数据化运营的重要意义
Nov 25 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
Mar 01 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
教你如何把一篇文章按要求分段
2006/10/09 PHP
php mssql 数据库分页SQL语句
2008/12/16 PHP
php discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
工厂会计员职责
2014/02/06 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏