使用 Python 划分数据集:将 8 类数据分成训练集、验证集和测试集
在'data.txt'文件夹中有一个包含多个样本的数据集,每个样本由 23 个特征值和 1 个类别标签组成。标签共有 8 个类别。我们需要将这个数据集分成训练集、验证集和测试集,每个类别分别随机选取 1000 条样本作为训练集,100 条样本作为验证集,100 条样本作为测试集。
可以使用 Python 中的 pandas 库来完成这项工作。以下是完整的代码:
import pandas as pd
import numpy as np
# 读取数据集
data = pd.read_csv('data.txt', header=None)
data.columns = [f'feature_{i}' for i in range(23)] + ['label']
# 划分训练集、验证集和测试集
train_data = pd.DataFrame()
val_data = pd.DataFrame()
test_data = pd.DataFrame()
# 对每个类别进行划分
for label in range(8):
# 获取当前类别的样本
samples = data[data['label'] == label]
# 随机选择 1000 个样本作为训练集
train_samples = samples.sample(n=1000, random_state=42)
# 将剩余样本分为验证集和测试集,各取 50 条
remaining_samples = samples.drop(train_samples.index)
val_samples = remaining_samples.sample(n=50, random_state=42)
test_samples = remaining_samples.drop(val_samples.index).sample(n=50, random_state=42)
# 将划分好的样本添加到对应的数据集中
train_data = train_data.append(train_samples)
val_data = val_data.append(val_samples)
test_data = test_data.append(test_samples)
# 保存训练集、验证集和测试集到文件
train_data.to_csv('train_data.txt', header=False, index=False)
val_data.to_csv('val_data.txt', header=False, index=False)
test_data.to_csv('test_data.txt', header=False, index=False)
这段代码将在当前目录下生成三个文件:train_data.txt、val_data.txt和test_data.txt,分别存储训练集、验证集和测试集的数据。每行是一个样本,特征值和标签之间用逗号分隔。
原文地址: https://www.cveoy.top/t/topic/jPiO 著作权归作者所有。请勿转载和采集!