📅  最后修改于: 2023-12-03 14:40:43.163000             🧑  作者: Mango
在机器学习和数据科学任务中,我们通常需要将数据集拆分为训练集、验证集和测试集。这样可以用训练集对模型进行训练,使用验证集来选择模型的超参数,最后使用测试集对模型进行评估。
下面是一种常见的将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对象拆分为训练集、验证集和测试集以进行机器学习任务。你可以根据自己的需求和数据集大小来调整拆分比例。拆分后的数据集可以用于训练各种机器学习模型,如分类、回归和聚类等。
希望这篇介绍对你有帮助!