对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查找相似单词的方法
Mar 05 Python
详解Python中的日志模块logging
Jun 19 Python
快速了解python leveldb
Jan 18 Python
python实现简单淘宝秒杀功能
May 03 Python
基于Python开发chrome插件的方法分析
Jul 07 Python
Python 打印中文字符的三种方法
Aug 14 Python
Django之无名分组和有名分组的实现
Apr 16 Python
Python从函数参数类型引出元组实例分析
May 28 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
用python实现学生管理系统
Jul 24 Python
python 实现倒计时功能(gui界面)
Nov 11 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中MVC的开发经验分享
2012/05/17 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
php+mysql实现无限级分类
2015/11/11 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
js模块加载方式浅析
2017/08/12 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
js实现批量删除功能
2020/08/27 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python判断字符串与大小写转换
2015/06/08 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
学校班班通实施方案
2014/06/11 职场文书
销售人员求职信
2014/07/22 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
论文答谢词
2015/01/20 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
大学学生会辞职信
2015/05/13 职场文书
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技