用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正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 Python
python文件和目录操作方法大全(含实例)
Mar 12 Python
Python3单行定义多个变量或赋值方法
Jul 12 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
python3中的logging记录日志实现过程及封装成类的操作
May 12 Python
django使用channels实现通信的示例
Oct 19 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 Python
Python使用BeautifulSoup4修改网页内容
May 20 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
Protoss热键控制
2020/03/14 星际争霸
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
深入理解js中this的用法
2016/05/28 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
从python读取sql的实例方法
2020/07/21 Python
Django返回HTML文件的实现方法
2020/09/17 Python
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
企业党员公开承诺书
2014/03/26 职场文书
幼儿园课题方案
2014/06/09 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python