对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判断、获取一张图片主色调的2个实例
Apr 10 Python
python中的lambda表达式用法详解
Jun 22 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
使用Python对Csv文件操作实例代码
May 12 Python
python实现Floyd算法
Jan 03 Python
详解Django+uwsgi+Nginx上线最佳实战
Mar 14 Python
Django模板语言 Tags使用详解
Sep 09 Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 Python
Python super()方法原理详解
Mar 31 Python
用Python提取PDF表格的方法
Apr 11 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 Python
python中redis包操作数据库的教程
Apr 19 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中文字符串截断无乱码解决方法
2016/10/10 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
Vue程序调试的方法
2019/06/17 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
python开发之函数定义实例分析
2015/11/12 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
Numpy之random函数使用学习
2019/01/29 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
骆驼官方商城:CAMEL
2016/11/22 全球购物
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
法律进社区实施方案
2014/03/21 职场文书
个人课题方案
2014/05/08 职场文书
经典禁毒标语
2014/06/16 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技