Skip to content

SMOTETomek with SMOTE variants #589

@pckroon

Description

@pckroon

Description

Hi! First off, I know very little about machine learning in general, and imbalanced machine learning in particular, so I don't know if this will make much sense.
The problem I encountered is that I can not use combine.SMOTETomek with e.g. SVMSMOTE.

Steps/Code to Reproduce

import numpy as np
from imblearn.combine import SMOTETomek
from imblearn.over_sampling import SVMSMOTE

sampler = SMOTETomek(smote=SVMSMOTE())
sampler.fit_resample(np.arange(10).reshape(5, -1), np.arange(5))

Expected Results

A SMOTETomek sampler that uses SVMSMOTE for oversampling.

Actual Results

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/.../.virtualenvs/cartographer/lib/python3.6/site-packages/imblearn/base.py", line 84, in fit_resample
    output = self._fit_resample(X, y)
  File "/home/.../.virtualenvs/cartographer/lib/python3.6/site-packages/imblearn/combine/_smote_tomek.py", line 139, in _fit_resample
    self._validate_estimator()
  File "/home/.../.virtualenvs/cartographer/lib/python3.6/site-packages/imblearn/combine/_smote_tomek.py", line 117, in _validate_estimator
    'Got {} instead.'.format(type(self.smote)))
ValueError: smote needs to be a SMOTE object.Got <class 'imblearn.over_sampling._smote.SVMSMOTE'> instead.

Versions

>>> import platform; print(platform.platform())
Linux-4.15.0-54-generic-x86_64-with-Ubuntu-18.04-bionic
>>> import sys; print("Python", sys.version)
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0]
>>> import numpy; print("NumPy", numpy.__version__)
NumPy 1.16.2
>>> import scipy; print("SciPy", scipy.__version__)
SciPy 1.2.1
>>> import sklearn; print("Scikit-Learn", sklearn.__version__)
Scikit-Learn 0.21.2
>>> import imblearn; print("Imbalanced-Learn", imblearn.__version__)
Imbalanced-Learn 0.5.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions