我正在用XGBoost做实验,却被一个我搞不懂的错误所阻碍。我已经在活动环境中安装了sklearn,并且可以通过在同一个笔记本上训练sklearn来验证它。当我试图训练一个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)UPDATE:使用完全相同的代码和导入创建了一个PyCharm模块,它毫无例外地执行。所以这似乎是木星笔记本的问题。PyCharm指向与笔记本相同的Anaconda环境。
更新2:创建一个新笔记本,并从抛出异常的笔记本中复制代码。代码在新笔记本上运行正常。叹一口气。案子结了。
发布于 2018-04-26 02:38:49
遇到同样的问题时,我已经安装了sklearn 后,安装了xgboost ,而我的jupyter笔记本正在运行。通过重新启动我的木星笔记本服务器,xgboost能够找到sklearn的安装。
在另一个新环境中测试了这一点,在此环境中,我已经安装了sklearn ,然后安装了xgboost ,然后启动了我的jupyter笔记本,没有出现问题。
发布于 2019-12-31 08:31:03
我在一个更复杂的项目中遇到了同样的错误,在发布了一个新版本之后,它突然失败了。
幸运的是,在我的例子中,我有了每个版本的docker映像,并且能够使用pip freeze查看更改的内容。
在这两个版本中,我都使用了xgboost==0.81,使用的版本是scikit-learn==0.21.3,而在新版本中使用的是scikit-learn==0.22
令人惊讶的是,这就是造成这一问题的原因。我尝试卸载和重新安装xgboost,并将scikit-learn还原为最初的版本,但仍然没有成功(即使在确保一个接一个地按正确的顺序安装之后)。
导致这个问题的原因是numpy从1.17.4升级到1.18.0。把它还给我解决了(不知道为什么)
这是ubuntu上的python3.6
发布于 2021-04-03 09:57:51
我也有过同样的问题。所有已经给出的答案都没有用。我也试过降低numpy版本的级别,因为据说它在其他论坛上起作用。
我最终重新安装了Anaconda,然后再次安装了pip。这个成功了。
https://stackoverflow.com/questions/49353243
复制相似问题