web-dev-qa-db-fra.com

Chargement du modèle XGBoost: ModuleNotFoundError: Aucun module nommé 'sklearn.preprocessing._label'

Je rencontre des problèmes pour charger un modèle xgboost pré-entraîné à l'aide du code suivant:

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

Et quand je fais cela, j'obtiens l'erreur suivante:

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'

Je n'ai rien vu en ligne, donc toute aide serait très appréciée.

5
madsthaks

J'ai pu résoudre mon problème. Mettez simplement à jour scikit-learn de 0.21.3 à 0.22.0 semble résoudre le problème. En cours de route, je dois également mettre à jour ma version pandas vers 0.25.2.

Le repère est fourni dans ce lien: https://www.gitmemory.com/vruusmann , où il indique:

Pendant la mise à niveau de la version Scikit-Learn de 0.21.X à 0.22.X, de nombreux modules ont été renommés (généralement, en ajoutant un caractère de soulignement au nom du module). Par exemple, sklearn.preprocessing.label.LabelEncoder est devenu sklearn.preprocessing._label.LabelEncoder.

4
ccy