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

一、前言
在机器学习领域,我们经常需要将数据集划分为训练集和测试集。训练集用于建立模型,测试集用于评估模型的泛化能力。pandas是Python中常用的数据处理库,可以方便地对数据进行读取、处理、统计和分析。本文将说明如何使用pandas划分数据集实现训练集和测试集。

二、划分数据集的方法
常见的数据集划分方法有以下两种:

1.随机划分
随机选择一些数据作为训练集,剩余数据作为测试集。这种方法简单,但随机样本可能存在偏差。

2.分层采样
按照数据分布的特点,从各个分层中选择一定数量的样本。这种方法可以保证样本的代表性和分布均衡,但需要先对数据进行分层处理。

在本文中,我们主要讲解随机划分的方法。

三、使用pandas划分数据集
pandas提供了方便的数据结构(如Series和DataFrame)和函数(如read_csv和iloc),用于处理和操作数据。我们可以使用pandas读取数据文件,并使用iloc函数进行划分操作。

下面是使用pandas划分数据集的完整步骤:

1.读取数据文件

import pandas as pd

# 读取数据文件
data = pd.read_csv('data.csv')

2.划分数据集

import pandas as pd

# 读取数据文件
data = pd.read_csv('data.csv')

# 随机划分数据集
train = data.sample(frac=0.8, random_state=42)
test = data.drop(train.index)

在上面的代码中,我们使用了sample函数随机选择了80%的数据作为训练集,并使用drop函数剩余数据作为测试集。sample函数的frac参数指定了随机选择的数据比例,random_state参数指定了随机数种子,可以保证每次划分的结果一致。

与此类似,我们也可以使用sklearn库提供的train_test_split函数进行数据集划分。

from sklearn.model_selection import train_test_split

# 读取数据文件
data = pd.read_csv('data.csv')

# 随机划分数据集
train, test = train_test_split(data, test_size=0.2, random_state=42)

train_test_split函数的参数test_size指定了测试集的比例,random_state参数同样指定了随机数种子。

四、示例说明
下面是两个示例,演示如何使用pandas划分数据集。

1.使用鸢尾花数据集划分数据集

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 加载鸢尾花数据集
iris = load_iris()

# 创建DataFrame
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['target'] = iris.target

# 划分数据集
train, test = train_test_split(df, test_size=0.2, random_state=42)

# 输出结果
print('训练集大小:', len(train))
print('测试集大小:', len(test))

以上代码将鸢尾花数据集划分为训练集和测试集,并输出划分结果。

2.使用波士顿房价数据集划分数据集

import pandas as pd
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split

# 加载波士顿房价数据集
boston = load_boston()

# 创建DataFrame
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['target'] = boston.target

# 划分数据集
train, test = train_test_split(df, test_size=0.2, random_state=42)

# 输出结果
print('训练集大小:', len(train))
print('测试集大小:', len(test))

以上代码将波士顿房价数据集划分为训练集和测试集,并输出划分结果。

五、总结
本文主要介绍了使用pandas划分数据集实现训练集和测试集的方法,包括随机划分和分层采样两种数据集划分方法。我们使用了pandas的read_csv和iloc函数,以及sklearn的train_test_split函数实现了数据集的划分操作。划分后的训练集和测试集可以用于机器学习的模型开发和性能评估。

本文链接:http://task.lmcjl.com/news/17566.html

展开阅读全文