数据预处理与数据集划分:用 Python 处理文本数据集并生成训练集、验证集和测试集
以下是一个可能的解决方案:
import random
# 读取数据集
data = []
with open('data.txt', 'r') as f:
for line in f:
line = line.strip().split(',')
data.append(line)
# 删除不满足条件的样本
filtered_data = []
for sample in data:
if len(sample) != 24:
continue
if not all(sample[:-1]):
continue
if not sample[-1].isdigit():
continue
filtered_data.append(sample)
# 随机打乱数据集
random.shuffle(filtered_data)
# 划分训练集、验证集和测试集
train_ratio = 0.8
val_ratio = 0.1
test_ratio = 0.1
num_samples = len(filtered_data)
num_train = int(train_ratio * num_samples)
num_val = int(val_ratio * num_samples)
train_data = filtered_data[:num_train]
val_data = filtered_data[num_train:num_train+num_val]
test_data = filtered_data[num_train+num_val:]
# 将数据写入文件
def write_data_to_file(data, filename):
with open(filename, 'w') as f:
for sample in data:
f.write(','.join(sample) + '\n')
write_data_to_file(train_data, 'train.txt')
write_data_to_file(val_data, 'val.txt')
write_data_to_file(test_data, 'test.txt')
上述代码首先读取数据集文件,然后逐行处理数据,删除不满足条件的样本。接下来,随机打乱数据集,并按照8:1:1的比例划分为训练集、验证集和测试集。最后,将划分好的数据集写入对应的文件中。注意,假设数据集文件名为'data.txt',生成的训练集、验证集和测试集分别为'train.txt'、'val.txt'和'test.txt'。你可以根据实际情况修改文件名。
原文地址: https://www.cveoy.top/t/topic/lHSh 著作权归作者所有。请勿转载和采集!