Python 在不平衡样本场景中为每个类提取相等数量的样本

Python 在不平衡样本场景中为每个类提取相等数量的样本,python,numpy,scikit-learn,data-science,Python,Numpy,Scikit Learn,Data Science,我有两个班,A班和B班。每个班的样本数量不平衡,比如A班500个,B班1000个 是否有一种方法可以为每个类提取平衡数量的样本,例如使用scikit learn或任何Numpy函数为a类和B类提取300个样本 示例是前5列,标签/类是最后一列 1 2 3 4 5 1 2 3 4 2 3 1 4 0 5 4 3 1 4 5 9 2 4 2 5 9 5 3 9 2 我想做的是,在我的最终选择中,两个课程的数量相等: 2 3 4 2 3 1 4 0 5 4 3 1 4 5 9 2 4 2 5 9 5

我有两个班,A班和B班。每个班的样本数量不平衡,比如A班500个,B班1000个

是否有一种方法可以为每个类提取平衡数量的样本,例如使用scikit learn或任何Numpy函数为a类和B类提取300个样本

示例是前5列,标签/类是最后一列

1 2 3 4 5 1
2 3 4 2 3 1
4 0 5 4 3 1
4 5 9 2 4 2
5 9 5 3 9 2
我想做的是,在我的最终选择中,两个课程的数量相等:

2 3 4 2 3 1
4 0 5 4 3 1
4 5 9 2 4 2
5 9 5 3 9 2
如果可以使用,则可以对
n
参数使用具有相同值的方法

演示:


什么是课堂?您能否为每个类和所需的数据集发布一个示例数据集(3-5行)?
In [364]: df1
Out[364]:
          a         b         c         d
0  0.774496  0.852985  0.257568  0.223773
1  0.630460  0.203675  0.305280  0.965628
2  0.408746  0.939827  0.801505  0.343216
3  0.578582  0.541716  0.451810  0.173890
4  0.210301  0.600485  0.184326  0.035092
5  0.583564  0.164262  0.958537  0.943357

In [365]: df2
Out[365]:
          a         b         c         d
0  0.340624  0.755825  0.569149  0.543630
1  0.004056  0.463891  0.556861  0.778607
2  0.171046  0.293104  0.317514  0.831424
3  0.370028  0.566356  0.895919  0.440559
4  0.148569  0.485086  0.299789  0.274720
5  0.137273  0.085598  0.874845  0.917356
6  0.356898  0.781540  0.091851  0.173430
7  0.495949  0.613337  0.512104  0.137251

In [366]: df1.sample(n=5)
Out[366]:
          a         b         c         d
3  0.578582  0.541716  0.451810  0.173890
4  0.210301  0.600485  0.184326  0.035092
1  0.630460  0.203675  0.305280  0.965628
0  0.774496  0.852985  0.257568  0.223773
5  0.583564  0.164262  0.958537  0.943357

In [367]: df2.sample(n=5)
Out[367]:
          a         b         c         d
2  0.171046  0.293104  0.317514  0.831424
5  0.137273  0.085598  0.874845  0.917356
6  0.356898  0.781540  0.091851  0.173430
3  0.370028  0.566356  0.895919  0.440559
0  0.340624  0.755825  0.569149  0.543630