Короткий ответ
Вам необходимо обновить scikit-learn
до версии 0.23.1.
Длинный ответ
Последняя версия 0.7.0 imbalanced-learn
, похоже, имеет недокументированную зависимость от scikit-learn
v0.23.1. Это даст вам AttributeError: 'SMOTE' object has no attribute '_validate_data'
, если ваш scikit-learn
равен 0,22 или ниже.
Если вы используете Anaconda
, установка scikit-learn
версии 0.23.1 может оказаться сложной задачей. conda update scikit-learn
может не обновлять scikit-learn
версию 0.23 или выше, потому что самая новая scikit-learn
версия, которую имеет Conda на данный момент, - это 0.22.1. Если вы попытаетесь установить его, используя conda install scikit-learn=0.23.1
или pip install scikit-learn==0.23.1
, вы получите множество проверок совместимости, и установка может быть не быстрой. Поэтому самый простой способ установить scikit-learn
версии 0.23.1 в Anaconda - это создать новую виртуальную среду с минимальным количеством пакетов, чтобы было меньше или не было проблем с конфликтами. Затем в новой виртуальной среде установите scikit-learn
версию 0.23.1, а затем версию 0.7.0 из imbalanced-learn
.
conda create -n test python=3.7.6
conda activate test
pip install scikit-learn==0.23.1
pip install imbalanced-learn==0.7.0
Наконец, вам необходимо переустановить IDE в новой виртуальной среде, чтобы для использования этих пакетов.
Однако, как только scikit-learn
версия 0.23.1 станет доступной в Conda и не возникнет проблем с совместимостью, вы сможете установить ее напрямую в базовую среду.