对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基础教程之实现石头剪刀布游戏示例
Feb 11 Python
python获取从命令行输入数字的方法
Apr 29 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Python实现简单过滤文本段的方法
May 24 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
python hook监听事件详解
Oct 25 Python
解决python有时候import不了当前的包问题
Aug 28 Python
python实现身份证实名认证的方法实例
Nov 08 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
python 实现多维数组(array)排序
Feb 28 Python
python selenium操作cookie的实现
Mar 18 Python
python中pyplot基础图标函数整理
Nov 10 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
drupal 代码实现URL重写
2011/05/04 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
一端时间轮换的广告
2006/06/26 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
2010/08/12 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python分治法定义与应用实例详解
2017/07/28 Python
python操作列表的函数使用代码详解
2017/12/28 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
python调用java的jar包方法
2018/12/15 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Django数据库迁移常见使用方法
2020/11/12 Python
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
药品质量检测应届生求职信
2013/11/14 职场文书
美术指导助理求职信
2014/04/20 职场文书
洗手间标语
2014/06/23 职场文书
驾驶员安全责任书
2014/07/22 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
结婚仪式主持词
2015/06/29 职场文书
教师节座谈会主持词
2015/07/03 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android