用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 相关文章推荐
Python3学习urllib的使用方法示例
Nov 29 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
浅析Django中关于session的使用
Dec 30 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
Python3读写ini配置文件的示例
Nov 06 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 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网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
js实现简易计算器功能
2019/10/18 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
Python中的闭包总结
2014/09/18 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
Python测试模块doctest使用解析
2019/08/10 Python
python实现梯度下降法
2020/03/24 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
会议主持人开场白台词
2015/05/28 职场文书
建党伟业电影观后感
2015/06/01 职场文书
教师节祝酒词
2015/08/11 职场文书
MySQL创建管理KEY分区
2022/04/13 MySQL
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python