对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正则表达式re模块详细介绍
May 29 Python
python实现连接mongodb的方法
May 08 Python
python实现的系统实用log类实例
Jun 30 Python
RC4文件加密的python实现方法
Jun 30 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
python字符串常用方法
Jun 14 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
Python实现打包成库供别的模块调用
Jul 13 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
Feb 24 Python
Django实现翻页的示例代码
May 24 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 URL编码解码函数代码
2009/03/10 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
Node.js的特点详解
2017/02/03 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
Vue的生命周期操作示例
2019/09/17 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
python实现比较文件内容异同
2018/06/22 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
中国电视购物:快乐购
2017/02/04 全球购物
一套Java笔试题
2016/08/20 面试题
机械工程系毕业生求职信
2013/09/27 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
捐款通知怎么写
2015/04/24 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
刑事上诉状范文
2015/05/22 职场文书
人与自然的观后感
2015/06/18 职场文书
python数字类型和占位符详情
2022/03/13 Python