【发布时间】:2020-02-09 16:04:19
【问题描述】:
我想重新采样一些大数据(班级规模:8mio vs 2700) 我想通过对 2 类进行过采样和对 1 类进行欠采样来获得 50.000 个样本。 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})
【问题讨论】:
标签: python machine-learning oversampling imblearn imbalanced-data