将分区数据集拆分为训练和测试(训练数据每个类有200个示例)

时间:2017-07-26 10:42:26

标签: python machine-learning split scikit-learn train-test-split

我有一个5级数据。每个类别大约有1000,1200,1500,1900,2000个样本。我想在训练数据中有200个每个类的例子。其他样本将是测试数据。也就是说,训练数据将包括每个类别中的[200,200,200,200,200]样本,测试数据将包括每个类别中的[800,1000,1300,1700,1800]样本。

我们如何在Python中执行此操作?是否有任何预定义的方法/包在Python中执行此操作?

另一个例子

train_test_split(data, labels, train_size= 0.0042 ) Label Number Total Samples Train Samples Test Samples 1 6631 33 6598 2 18649 89 18560 3 2099 6 2093 4 3064 11 3053 5 1345 5 1340 6 5029 26 5003 7 1330 3 1327 8 3682 21 3661 9 947 6 941 Total 42776 200 42576

train_test_split(data, labels, train_size= 200 ) Label Number Total Samples Train Samples Test Samples 1 6631 33 6598 2 18649 89 18560 3 2099 6 2093 4 3064 11 3053 5 1345 5 1340 6 5029 26 5003 7 1330 3 1327 8 3682 21 3661 9 947 6 941 Total 42776 200 42576

所以,我希望它是这样的:

Label Number Total Samples Train Samples Test Samples 1 6631 200 6431 2 18649 200 18449 3 2099 200 1899 4 3064 200 2864 5 1345 200 1145 6 5029 200 4829 7 1330 200 1130 8 3682 200 3482 9 947 200 747 Total 42776 1800 40976

1 个答案:

答案 0 :(得分:0)

您可以将train_size sklearn.model_selection.train_test_split参数设置为一个整数值,表示您的情况下列车样本的绝对数量200。如果它是一个浮点数,它应该介于0.0到1.0之间,以表示您想要考虑的训练样本的比例。例如,0.8表示80%。