2017-07-26 135 views
-4

我有一个5类数据。每班有大约1000,1200,1500,1900,2000个样本。我想在训练数据中有200个每个类的例子。其他样品将成为测试数据。也就是说,训练数据将包括每个类别中的[200,200,200,200,200,200]个样本,测试数据将由每个类别中的[800,1000,1300,1700,1800]样本组成。将分区数据集拆分为训练和测试(训练数据每个类有200个示例)

我们如何在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=) 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

你到现在为止做了什么? – Kshitiz

+0

我使用Google搜索,但找不到有效的解决方案。 'train_test_split'函数中的'train_size'参数不是解决方案。如果“int”是,则自动计算百分比。 –

+0

如果int是自动计算的,则百分比是什么意思? – Kshitiz

回答

0

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

+0

如果参数'train_size'是200,则每类训练数据中元素的数量分别是[26,32,39,50,53]。训练数据中的样本总数为200.我不想要这样。每个班级由200个样本组成,因此您在训练数据中总共有1000个样本。 –

+0

那么,如果你把1000作为'train_size',那么除了200左右外,其他所有的都不会是200,它的平等真的很重要吗? –

+0

你能告诉我们你的数据集的一部分吗? – Kshitiz

相关问题