对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 sort、sorted高级排序技巧
Nov 21 Python
利用python实现数据分析
Jan 11 Python
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
python实现梯度下降算法
Mar 24 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
解决yum对python依赖版本问题
Jul 05 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
python 下载文件的多种方法汇总
Nov 17 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
php实现单链表的实例代码
2013/03/22 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
PHP常用处理静态操作类
2015/04/03 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
5款Javascript颜色选择器
2009/10/25 Javascript
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
初识Node.js
2014/09/03 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
python制作企业邮箱的爆破脚本
2016/10/05 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
收银员的岗位职责范本
2014/02/04 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
2014年环保工作总结
2014/11/26 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL