如何使用 Python 中的 "imblearn" 库为每个 class 指定一个确切的 undersample/oversample 数字?

How to specify an exact undersample/oversample number for each class using "imblearn" library in Python?

我正在使用“imblearn”库进行欠采样。我的数据集中有四个 classes,每个都有 20、30、40 和 50 个样本数据(因为它是不平衡的 class)。选择这些样本数是为了容易描述问题,这些在实际中不是有效的数量。

我想对每个 class 具有 10 个样本数据的样本进行欠采样。有没有一种方法可以使用“imblearn”来完成?

目前我正在使用以下代码将每个 class 采样到我的少数 class 拥有(20 个样本数据)的数量:

undersample = RandomUnderSampler(sampling_strategy='all')
X_under, y_under = undersample.fit_resample(X, y)

您可以将字典传递给 sampling_strategy: undersample=RandomUnderSampler(sampling_strategy={0:10,1:10,2:10,3:10})