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.

Другие вопросы по тегам