RandomUnderSampler' object has no attribute 'fit_resample'

hsbr13 picture hsbr13 · Aug 12, 2019 · Viewed 8.6k times · Source

I am using RandomUnderSampler from imblearn, but I get the following error. Any ideas? Thanks

from imblearn.under_sampling import RandomUnderSampler
print('Initial dataset shape %s' % Counter(y.values.squeeze()))
rus = RandomUnderSampler(random_state=42)
X_undersampled, y_undersampled = rus.fit_resample(X, y)
y_undersampled = y_undersampled.squeeze()

output:

Initial dataset shape Counter({0: 2499739, 1: 1558})

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-18-4fe9dcfbd68e> in <module>
      1 print('Initial dataset shape %s' % Counter(y.values.squeeze()))
      2 rus = RandomUnderSampler(random_state=42)
----> 3 X_undersampled, y_undersampled = rus.fit_resample(X, y)
      4 y_undersampled = y_undersampled.squeeze()
      5 

AttributeError: 'RandomUnderSampler' object has no attribute 'fit_resample'

main libraries I am using:

imbalanced-learn==0.3.3
pandas==0.24.2
numpy==1.15.4
scikit-learn==0.19.2

Answer

Georgios Douzas picture Georgios Douzas · Aug 13, 2019

The method fit_resample was introduced lately to imbalanced-learn API. Either update imbalanced-learn or use fit_sample instead.