【问题标题】:Loading XGBoost Model: ModuleNotFoundError: No module named 'sklearn.preprocessing._label'加载 XGBoost 模型:ModuleNotFoundError:没有名为“sklearn.preprocessing._label”的模块
【发布时间】:2019-12-26 20:15:11
【问题描述】:

我在使用以下代码加载预训练的 xgboost 模型时遇到问题:

xgb_model = pickle.load(open('churnfinalunscaled.pickle.dat', 'rb'))

当我这样做时,我收到以下错误:

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-29-31e7f426e19e> in <module>()
----> 1 xgb_model = pickle.load(open('churnfinalunscaled.pickle.dat', 'rb'))

ModuleNotFoundError: No module named 'sklearn.preprocessing._label'

我没有在网上看到任何东西,所以非常感谢任何帮助。

【问题讨论】:

  • 我遇到了同样的问题。奇怪的是,当我尝试在 Mac 上解开同一个文件时,它运行正常,但是,当我尝试在 Linux(Debian GNU/Linux 9)上解开同一个文件时,我遇到了同样的错误你做了...

标签: pickle xgboost


【解决方案1】:

我能够解决我的问题。只需将 scikit-learn 从 0.21.3 更新到 0.22.0 似乎就可以解决问题。在此过程中,我还必须将我的pandas 版本更新为 0.25.2。

此链接中提供了提示:https://www.gitmemory.com/vruusmann,其中指出:

在 Scikit-Learn 版本从 0.21.X 升级到 0.22.X 期间,许多模块被重命名(通常通过在模块名称前加上下划线字符)。例如,sklearn.preprocessing.label.LabelEncoder 变为 sklearn.preprocessing._label.LabelEncoder

【讨论】:

  • 我的pandas版本是1.2.3,但我也有同样的问题
  • @EgoPingvina 我遇到了同样的问题,并通过升级 xgboost 库(到版本 1.4.0)解决了它
猜你喜欢
  • 2019-09-03
  • 1970-01-01
  • 2017-12-14
  • 2020-10-01
  • 2022-07-02
  • 2019-03-28
  • 2018-08-04
  • 1970-01-01
相关资源
最近更新 更多