-4

我有一个 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

4

1 回答 1

0

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

于 2017-07-26T10:53:09.373 回答