Я хочу передискретизировать некоторые большие данные (размеры классов: 8 миллионов против 2700). Я хотел бы иметь по 50 000 выборок каждого класса с передискретизацией класса 2 и недостаточной выборки класса 1. imblearn, кажется, предлагает комбинацию избыточной и недостаточной выборки, но я не понимаю, как это сделать. работает.
from collections import Counter
from imblearn.over_sampling import SMOTENC
from imblearn.under_sampling import TomekLinks
from imblearn.combine import SMOTETomek
smt = SMOTETomek(random_state=1)
X_resamp, y_resamp = smt.fit_resample(data_all[29000:30000], labels_all[29000:30000])
Раньше данные выглядели как
>>Counter(labels_all[29000:30000])
>>Counter({0: 968, 9: 32})
а потом
>>Counter(y_resamp)
>>Counter({0: 968, 9: 968})
как я ожидал или желал чего-то вроде
>>Counter(y_resamp)
>>Counter({0: 100, 9: 100})