对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实现扫描端口示例
Mar 29 Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 Python
用Python编写简单的微博爬虫
Mar 04 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
python绘制散点图并标记序号的方法
Dec 11 Python
python多任务之协程的使用详解
Aug 26 Python
python实现一个函数版的名片管理系统过程解析
Aug 27 Python
python模块hashlib(加密服务)知识点讲解
Nov 25 Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 Python
python之语音识别speech模块
Sep 09 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
php中使用websocket详解
2016/09/23 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
jQuery 事件队列调整方法
2009/09/18 Javascript
jquery对表单操作2
2011/04/06 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
js实现日期级联效果
2014/01/23 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
python实现数据分析与建模
2019/07/11 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
建筑结构施工专业推荐信
2014/02/21 职场文书
个人课题方案
2014/05/08 职场文书
万能检讨书2000字
2014/10/17 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
MySQL日期时间函数知识汇总
2022/03/17 MySQL