如何将数据随机分为训练集和测试集?
我有一个很大的数据集,想将其分为训练(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 randomwith 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