Python 将分区数据集拆分为训练和测试(训练数据包含每个类的200个示例)
我有5级数据。每个类别大约有1000、1200、1500、1900、2000个样本。我想有200个例子,每个班的培训数据。其他样本将作为测试数据。也就是说,训练数据将包括每个类中的[200、200、200、200、200]样本,测试数据将包括每个类中的[800、1000、1300、1700、1800]样本 我们如何在Python中实现这一点?在Python中是否有任何预定义的方法/包来执行此操作 另一个例子Python 将分区数据集拆分为训练和测试(训练数据包含每个类的200个示例),python,machine-learning,split,scikit-learn,train-test-split,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\u test\u split(数据、标签、train\u大小=
train\u test\u split(数据、标签、train\u大小=
<0.0042)
标签编号总样本序列样本测试样本
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
总计4277620042576
train\u test\u split(数据、标签、train\u大小=
200)
标签编号总样本序列样本测试样本
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
总计4277620042576
所以,我希望它是这样的:
标签编号总样本序列样本测试样本
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
您可以将sklearn.model_selection.train_test_split
的train_size
参数设置为整数值,该整数值表示在您的情况下,列车样本的绝对数量为200。如果它是一个浮标,它应该位于0到1之间,以代表你想要考虑的训练样本的比例。例如,0.8意味着80% 到现在为止你都做了些什么?我在谷歌上搜索了一下,但找不到有效的解决办法。train\u test\u split
功能中的train\u size
参数不是解决方案。如果int
为,则自动计算百分比。如果int,则自动计算百分比是什么意思?如果参数train\u size
为200,则每类训练数据中的元素数分别为[26,32,39,50,53]。训练数据中的样本总数为200。我不要这个。每个类由200个样本组成,因此您在训练数据中总共有1000个样本。因此,如果您将1000作为train\u size
,那么除了200个样本之外,其他所有样本的样本数都不会是200个,这真的很重要吗?很抱歉,我不能告诉您我的问题。我在问题中增加了一个详细的例子。我希望它能解释清楚。你的问题现在清楚了。我只能考虑首先创建5个独立的数据帧,每个数据帧包含1个类/标签的样本。在每一个上应用列测试,列大小=200。这将为您提供5个训练集和5个测试集,您可以通过pythonically组合来获得单个训练集和测试集。