XGBoost не может найти sklearn
Я экспериментирую с XGBoost и заблокирован ошибкой, которую не могу понять. Я установил sklearn в активной среде и могу проверить это, обучив sklearn RandomForestClassifier в той же записной книжке. Когда я пытаюсь обучить модель XGBoost, я получаю ошибку XGBoostError: sklearn needs to be installed in order to use this module
Это работает:
clf = RandomForestClassifier(n_estimators=200, random_state=0, n_jobs=-1)
Это выдает исключение:
clf = xgb.XGBClassifier(max_depth=3, n_estimators=300, learning_rate=0.05).fit(train_X, train_y)
ОБНОВЛЕНИЕ: Создан модуль PyCharm с точно таким же кодом и импортом, и он выполняется без исключения. Так что это, похоже, проблема с ноутбуком Jupyter. PyCharm указывает на ту же среду Anaconda, что и ноутбук.
ОБНОВЛЕНИЕ 2: Создан новый блокнот и скопирован код из того, который выбрасывал исключение. Код работает нормально в новой записной книжке. Вздох. Дело закрыто.
4 ответа
Столкнулся с той же проблемой, я установил sklearn
после установки xgboost
в то время как моя тетрадь Jupyter работала. Перезапустив мой сервер ноутбуков Jupyter, xgboost
смог найти sklearn
монтаж.
Протестировал это в другой свежей среде, где я установил sklearn
перед установкой xgboost
затем запустил мою тетрадь Jupyter без проблем.
У меня такая же ошибка с более сложным проектом, после выпуска новой версии он внезапно вышел из строя.
К счастью, в моем случае у меня были образы докеров для каждой версии, и я мог использовать pip freeze
чтобы увидеть, что изменилось.
В обеих версиях я использовал xgboost==0.81
В той версии, которая работала, у меня было scikit-learn==0.21.3
а в новой версии было scikit-learn==0.22
как ни странно, проблема была именно в этом. Я пытался удалить и переустановитьxgboost
и вернулся scikit-learn
чтобы версия была изначально включена, и все равно не повезло (даже после того, как вы установили одну за другой в правильном порядке).
Причиной проблемы было обновление numpy
от 1.17.4
к 1.18.0
. вернув его, я решил это для меня (не знаю, почему)
это был python 3.6 на ubuntu
Я была такая же проблема. Все уже предоставленные ответы не сработали. Я также попытался понизить версию numpy, так как, как говорили, это работало на каком-то другом форуме
В конце концов я переустановил Anaconda, а затем снова установил pip install xgboost. Это сработало.
Если у вас правильная версия xgboost и sklearn. Затем после установки на ноутбуке Jupyter. вы увидите, что он не работает, просто перезагрузите ноутбук Jupyter. Я решил использовать этот способ из этого источника:
https://www.titanwolf.org/Network/q/9e5adeeb-f57f-4283-8989-d213d7c61864/y говорит: Столкнулся с той же проблемой, я установил sklearn после установки xgboost, когда мой ноутбук Jupyter работал. Перезапустив мой сервер ноутбуков Jupyter, xgboost смог найти установку sklearn.