在'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.txtval_data.txttest_data.txt,分别存储训练集、验证集和测试集的数据。每行是一个样本,特征值和标签之间用逗号分隔。

使用 Python 划分数据集:将 8 类数据分成训练集、验证集和测试集

原文地址: https://www.cveoy.top/t/topic/jPiO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录