Python 在不平衡样本场景中为每个类提取相等数量的样本
我有两个班,A班和B班。每个班的样本数量不平衡,比如A班500个,B班1000个 是否有一种方法可以为每个类提取平衡数量的样本,例如使用scikit learn或任何Numpy函数为a类和B类提取300个样本 示例是前5列,标签/类是最后一列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
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