用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实现从web抓取文档的方法
Sep 26 Python
详解python中的文件与目录操作
Jul 11 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
python遍历文件夹下所有excel文件
Jan 03 Python
破解安装Pycharm的方法
Oct 19 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 Python
python正则表达式实例代码
Mar 03 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
Jun 30 Python
python3爬虫中多线程的优势总结
Nov 24 Python
python字典的元素访问实例详解
Jul 21 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连mysql和oracle数据库性能比较
2006/10/09 PHP
在Windows版的PHP中使用ADO
2006/10/09 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
JavaScript 动态生成方法的例子
2009/07/22 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
a标签调用js的方法总结
2019/09/05 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
Python实现115网盘自动下载的方法
2014/09/30 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
pycham查看程序执行的时间方法
2018/11/29 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
用python写测试数据文件过程解析
2019/09/25 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
求职简历自荐信范文
2013/10/21 职场文书
优秀学生自我鉴定范例
2013/12/18 职场文书
工作决心书范文
2014/03/11 职场文书
授权委托书协议书
2014/10/16 职场文书
社区元宵节活动总结
2015/02/06 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers
全网非常详细的pytest配置文件
2022/07/15 Python