对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除法运算小技巧
Apr 05 Python
在Python中用split()方法分割字符串的使用介绍
May 20 Python
Python实现简单的代理服务器
Jul 25 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
Python中shutil模块的学习笔记教程
Apr 04 Python
python flask 多对多表查询功能
Jun 25 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
Dec 12 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
python中round函数如何使用
Jun 19 Python
Python 如何实现文件自动去重
Jun 02 Python
Python实现视频自动打码的示例代码
Apr 08 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
php join函数应用
2011/05/04 PHP
ThinkPHP写第一个模块应用
2012/02/20 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
php数据访问之增删改查操作
2016/05/09 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
为什么说python更适合树莓派编程
2020/07/20 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
建筑个人求职信范文
2014/01/25 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
车辆转让协议书
2014/04/15 职场文书
护士医德考评自我评价
2015/03/03 职场文书
药店收银员岗位职责
2015/04/07 职场文书
停电通知范文
2015/04/16 职场文书