📜  df 拆分为训练、验证、测试 - Python (1)

📅  最后修改于: 2023-12-03 14:40:43.163000             🧑  作者: Mango

DataFrame拆分为训练、验证、测试数据集 - Python

在机器学习和数据科学任务中,我们通常需要将数据集拆分为训练集、验证集和测试集。这样可以用训练集对模型进行训练,使用验证集来选择模型的超参数,最后使用测试集对模型进行评估。

下面是一种常见的将DataFrame对象拆分为训练、验证和测试数据集的方法。

首先,我们需要导入需要的库和模块:

import pandas as pd
from sklearn.model_selection import train_test_split

然后,我们可以使用pd.read_csv()或其他方法读取数据集并将其存储为DataFrame对象。例如,以下代码将数据集从CSV文件中读取为DataFrame对象:

df = pd.read_csv('dataset.csv')

接下来,我们可以使用train_test_split函数将DataFrame对象拆分为训练集、验证集和测试集。train_test_split函数将数据集随机拆分为两个子集。我们可以多次调用该函数进行多次拆分,以生成验证集和测试集。

下面是一个例子:

# 将数据集拆分为训练集和剩余部分
train_df, remaining_df = train_test_split(df, test_size=0.3, random_state=42)

# 将剩余部分再次拆分为验证集和测试集
val_df, test_df = train_test_split(remaining_df, test_size=0.5, random_state=42)

这里我们首先使用train_test_split函数将df拆分为训练集(70%)和剩余部分(30%)。然后,我们再次使用train_test_split函数将剩余部分拆分为验证集(15%)和测试集(15%)。

正如上述代码中所示,我们可以通过更改test_size参数的值来控制拆分的比例。random_state参数用于设置随机种子,以确保每次运行代码时都获得相同的拆分结果。

最后,我们可以使用以下代码片段来显示拆分后的数据集的大小:

print(f"Train set shape: {train_df.shape}")
print(f"Validation set shape: {val_df.shape}")
print(f"Test set shape: {test_df.shape}")

上述代码将打印出训练集、验证集和测试集的维度(行数和列数)。

以下为拆分后的数据集大小示例输出:

Train set shape: (700, 10)
Validation set shape: (150, 10)
Test set shape: (150, 10)

这里的示例输出表示训练集有700个样本,验证集和测试集各有150个样本。每个样本包含10个特征列。

现在,你已经了解了如何将DataFrame对象拆分为训练集、验证集和测试集以进行机器学习任务。你可以根据自己的需求和数据集大小来调整拆分比例。拆分后的数据集可以用于训练各种机器学习模型,如分类、回归和聚类等。

希望这篇介绍对你有帮助!