对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 探针的实现原理
Apr 23 Python
Ruby元编程基础学习笔记整理
Jul 02 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
Python中一些不为人知的基础技巧总结
May 19 Python
django用户登录和注销的实现方法
Jul 16 Python
Pyqt QImage 与 np array 转换方法
Jun 27 Python
django 中QuerySet特性功能详解
Jul 25 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
Python分类测试代码实例汇总
Jul 23 Python
python如何实现图片压缩
Sep 11 Python
python程序的组织结构详解
Dec 06 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 正则学习实例
2008/07/30 PHP
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
javascript 获取图片颜色
2009/04/05 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
python编程开发之日期操作实例分析
2015/11/13 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
学校师德师风整改方案
2014/10/28 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
学校食品安全责任书
2015/01/29 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
Mysql文件存储图文详解
2021/06/01 MySQL
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android