对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语言描述机器学习之Logistic回归算法
Dec 21 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
python使用tornado实现简单爬虫
Jul 28 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
django的settings中设置中文支持的实现
Apr 28 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
解决python虚拟环境切换无效的问题
Apr 30 Python
Python super()函数使用及多重继承
May 06 Python
python如何处理程序无法打开
Jun 16 Python
解决Python安装cryptography报错问题
Sep 03 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
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Python实现求数列和的方法示例
2018/01/12 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
Python正则表达式和元字符详解
2018/11/29 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python实现图片上添加图片
2019/11/26 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
Python-openCV开运算实例
2020/07/05 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
思想政治自我鉴定
2013/10/06 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
运动会口号8字
2014/06/07 职场文书
安全口号大全
2014/06/21 职场文书
地道战观后感400字
2015/06/04 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers