对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中变量赋值的问题
Jan 12 Python
Python列表解析配合if else的方法
Jun 23 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
python如何给字典的键对应的值为字典项的字典赋值
Jul 05 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
Pytorch中的variable, tensor与numpy相互转化的方法
Oct 10 Python
浅谈python之自动化运维(Paramiko)
Jan 31 Python
pandas DataFrame运算的实现
Jun 14 Python
python3.x中安装web.py步骤方法
Jun 23 Python
Python中相见恨晚的技巧
Apr 13 Python
使用numpy nonzero 找出非0元素
May 14 Python
python实现简单的聊天小程序
Jul 07 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
php 函数中使用static的说明
2012/06/01 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
PHP和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
Python astype(np.float)函数使用方法解析
2020/06/08 Python
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
比利时买床:Beter Bed
2017/12/06 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
绿色环保标语
2014/06/12 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
Python借助with语句实现代码段只执行有限次
2022/03/23 Python
浅析Python OpenCV三种滤镜效果
2022/04/11 Python