如何将数据随机分为训练集和测试集?

我有一个很大的数据集,想将其分为训练(50%)和测试集(50%)。

假设我有100个示例存储了输入文件,每一行包含一个示例。我需要选择50条线作为训练集和50条线测试集。

我的想法是首先生成一个长度为100(值范围从1到100)的随机列表,然后将前50个元素用作50个训练示例的行号。与测试集相同。

这可以在Matlab中轻松实现

fid=fopen(datafile);

C = textscan(fid, '%s','delimiter', '\n');

plist=randperm(100);

for i=1:50

trainstring = C{plist(i)};

fprintf(train_file,trainstring);

end

for i=51:100

teststring = C{plist(i)};

fprintf(test_file,teststring);

end

但是如何在Python中完成此功能?我是Python的新手,不知道是否可以将整个文件读入数组并选择某些行。

回答:

这可以在Python中使用列表类似地完成(请注意,整个列表在适当的位置被随机排列)。

import random

with open("datafile.txt", "rb") as f:

data = f.read().split('\n')

random.shuffle(data)

train_data = data[:50]

test_data = data[50:]

以上是 如何将数据随机分为训练集和测试集? 的全部内容, 来源链接: utcz.com/qa/426915.html

回到顶部