用pandas划分数据集实现训练集和测试集


Posted in Python onJuly 20, 2020

1、使用model_select子模块中的train_test_split函数进行划分

数据:使用kaggle上Titanic数据集

划分方法:随机划分

# 导入pandas模块,sklearn中model_select模块
import pandas as pd
from sklearn.model_select import train_test_split
# 读取数据
data = pd.read_csv('.../titanic_dataset/train.csv')
# 将特征划分到 X 中,标签划分到 Y 中
x = data.iloc[:, 2:]
y = data.loc['Survived']
# 使用train_test_split函数划分数据集(训练集占75%,测试集占25%)

x_train, x_test, y_train,y_test = train_test_split(x, y, test_size=0.25, ramdon_state=0)

缺点:1、数据浪费严重,只对部分数据进行了验证

            2、容易过拟合

2、k折交叉验证(kfold)

原理:将数据集划分成n个不相交的子集,每次选择其中一个作为测试集,剩余n-1个子集作为            训练集,共生成 n 组数据

使用方法:sklearn.model_select.KFold(n_splits=5,shuffle=False,random_state=0)

参数说明:n_splits:数据集划分的份数,

                  shuffle:每次划分前是否重新洗牌 ,False表示划分前不洗牌,每次划分结果一样,True表示划分前洗牌,每次划分结果不同

                 random_state:随机种子数

(1)shuffle=False 情况下数据划分情况

# 不洗牌模式下数据划分情况
import numpy as np
from sklearn.model_selection import KFold
x = np.arange(46).reshape(23,2)
kf = KFold(n_splits=5,shuffle=False)
for train_index, test_index in kf.split(x):
  print(train_index,test_index)
[ 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22] [0 1 2 3 4]
[ 0 1 2 3 4 10 11 12 13 14 15 16 17 18 19 20 21 22] [5 6 7 8 9]
[ 0 1 2 3 4 5 6 7 8 9 15 16 17 18 19 20 21 22] [10 11 12 13 14]
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 19 20 21 22] [15 16 17 18]
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18] [19 20 21 22]

(2)shuffle=True 情况下数据划分情况 

import numpy as np
from sklearn.model_selection import KFold
x = np.arange(46).reshape(23,2)
kf = KFold(n_splits=5,shuffle=True)
for train_index, test_index in kf.split(x):
  print(train_index,test_index)
[ 0 3 4 5 6 7 8 9 10 11 12 14 15 16 17 19 20 21] [ 1 2 13 18 22]
[ 0 1 2 3 5 6 7 10 11 13 15 16 17 18 19 20 21 22] [ 4 8 9 12 14]
[ 0 1 2 3 4 7 8 9 10 12 13 14 15 16 17 18 19 22] [ 5 6 11 20 21]
[ 1 2 3 4 5 6 8 9 10 11 12 13 14 15 18 19 20 21 22] [ 0 7 16 17]
[ 0 1 2 4 5 6 7 8 9 11 12 13 14 16 17 18 20 21 22] [ 3 10 15 19]

总结:从数据中可以看出shuffle=True情况下数据的划分是打乱的,而shuffle=False情况下数据的划分是有序的

到此这篇关于用pandas划分数据集实现训练集和测试集的文章就介绍到这了,更多相关pandas划分数据集 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python中实现参数类型检查的简单方法
Apr 21 Python
python显示生日是星期几的方法
May 27 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
Python切片工具pillow用法示例
Mar 30 Python
Tensorflow加载预训练模型和保存模型的实例
Jul 27 Python
python socket 聊天室实例代码详解
Nov 14 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
Pyqt助手安装PyQt5帮助文档过程图解
Nov 20 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 Python
Python中生成ndarray实例讲解
Feb 22 Python
python字符串的多行输出的实例详解
Jun 08 Python
Python数据可视化实现漏斗图过程图解
Jul 20 #Python
浅谈pandas dataframe对除数是零的处理
Jul 20 #Python
为什么说python更适合树莓派编程
Jul 20 #Python
Python faker生成器生成虚拟数据代码实例
Jul 20 #Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 #Python
python pandas dataframe 去重函数的具体使用
Jul 20 #Python
Pandas中DataFrame基本函数整理(小结)
Jul 20 #Python
You might like
PHP分页显示制作详细讲解
2006/12/05 PHP
php中看实例学正则表达式
2006/12/25 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
详解php命令注入攻击
2019/04/06 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
js停止输出代码
2008/07/20 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
详解jQuery停止动画——stop()方法的使用
2016/12/14 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
python批量替换页眉页脚实例代码
2018/01/22 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
python语言元素知识点详解
2019/05/15 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
Python for i in range ()用法详解
2020/09/18 Python
制定岗位职责的原则
2013/11/08 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书