对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中List的sort方法指南
Sep 01 Python
利用Python如何生成随机密码
Apr 20 Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
Flask配置Cors跨域的实现
Jul 12 Python
python输出带颜色字体实例方法
Sep 01 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
Python虚拟环境venv用法详解
May 25 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
Python机器学习之KNN近邻算法
May 14 Python
详解Python中*args和**kwargs的使用
Apr 07 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基于文件存储实现缓存的方法
2015/07/20 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
django主动抛出403异常的方法详解
2019/01/04 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
工会主席岗位责任制
2014/02/11 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
会议简报格式范文
2015/07/20 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android