对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 相关文章推荐
Python2.x中str与unicode相关问题的解决方法
Mar 30 Python
python实现文件快照加密保护的方法
Jun 30 Python
python分布式环境下的限流器的示例
Oct 26 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
python写程序统计词频的方法
Jul 29 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Python如何在循环内使用list.remove()
Jun 01 Python
利用python做表格数据处理
Apr 13 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
JavaScript 实现??打印?理
2007/04/28 Javascript
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
js实现微信分享代码
2020/10/11 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
pyenv命令管理多个Python版本
2017/03/26 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Python类如何定义私有变量
2020/02/03 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
python 两种方法删除空文件夹
2020/09/29 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
大学生就业意向书范文
2014/04/01 职场文书
给学校的建议书范文
2014/05/15 职场文书
师范生见习报告范文
2014/11/03 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers