用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 相关文章推荐
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
Mar 30 Python
Python实现豆瓣图片下载的方法
May 25 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
Python对excel文档的操作方法详解
Dec 10 Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 Python
django框架两个使用模板实例
Dec 11 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
Python socket如何解析HTTP请求内容
Feb 12 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判断服务器是否是HTTPS连接
2013/07/05 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
JavaScript 常用函数库详解
2009/10/21 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
简介Python中用于处理字符串的center()方法
2015/05/18 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
python and or用法详解
2019/06/26 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
客户代表自我评价范例
2013/09/24 职场文书
个人简历自荐信
2013/12/05 职场文书
女方回门宴答谢词
2014/01/14 职场文书
党员干部承诺书范文
2014/03/25 职场文书
共青团员自我评价范文
2014/09/14 职场文书
教务处教学工作总结
2015/08/10 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python