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

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博客!

在机器学习中,划分训练集测试集是一个非常重要的步骤。pandas是一个流行的Python数据处理库,可以使用它来对数据进行划分。 首先,我们需要导入pandas库,并读取我们的数据集。可以使用`pandas.read_csv()`函数来读取csv文件,或者使用`pandas.read_excel()`函数来读取Excel文件。读取数据后,我们可以使用`head()`函数来查看前几行数据,确保数据读取正确。 接下来,我们需要将数据集划分训练集测试集。可以使用`train_test_split()`函数来实现。该函数可以将数据划分训练集测试集,并可以指定划分的比例。例如,如果我们希望将数据集划分为70%的训练集和30%的测试集,可以将参数`test_size`设置为0.3。 划分后,我们可以将训练集测试集保存为新的变量。通常,我们将训练集保存为变量`X_train`,将训练集标签保存为变量`y_train`,将测试集保存为变量`X_test`,将测试集标签保存为变量`y_test`。 最后,我们可以使用划分后的数据集进行训练和测试。例如,我们可以使用训练集来训练模型,然后使用测试集来评估模型的性能。可以使用各种机器学习算法来实现,例如线性回归、决策树等。 总之,使用pandas划分训练集测试集可以帮助我们对模型进行评估和调整,并确保模型在未知数据上的泛化能力。这是机器学习中非常重要的一步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值