This question got to do with SMOTEBoost implementation found here but I believe the issue is relayed to imblearn library.

I tried using the library to re-sample all classes in a multiclass problem. Caught by AttributeError: 'int' object has no attribute 'flatten' error:

How to reproduce the error (in Colab nb):

Clone repo:

!git clone https://github.com/gkapatai/MaatPy.git
cd MaatPy/

from maatpy.classifiers import SMOTEBoost

Dummy data:

X, y = make_classification(n_samples=1000, n_classes=3, n_informative=6, weights=[.1, .15, .75])
xtrain, xtest, ytrain, ytest = train_test_split(X, y, test_size=.2, random_state=123)

Create model:

from maatpy.classifiers import SMOTEBoost
model = SMOTEBoost()
model.fit(xtrain, ytrain)

/usr/local/lib/python3.7/dist-packages/imblearn/over_sampling/_smote.py in _make_samples(self, X, y_dtype, y_type, nn_data, nn_num, n_samples, step_size)
    106         random_state = check_random_state(self.random_state)
    107         samples_indices = random_state.randint(
--> 108             low=0, high=len(nn_num.flatten()), size=n_samples)
    109         steps = step_size * random_state.uniform(size=n_samples)
    110         rows = np.floor_divide(samples_indices, nn_num.shape[1])

AttributeError: 'int' object has no attribute 'flatten'


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.