加载 XGBoost 模型:ModuleNotFoundError:没有名为“sklearn.preprocessing._label”的模块

mad*_*aks 9 pickle xgboost

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

xgb_model = pickle.load(open('churnfinalunscaled.pickle.dat', 'rb'))
Run Code Online (Sandbox Code Playgroud)

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

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'
Run Code Online (Sandbox Code Playgroud)

我没有在网上看到任何东西,所以任何帮助将不胜感激。

小智 9

我能够解决我的问题。简单地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”,但我有同样的问题 (2认同)