Salut, je ne parviens pas à trouver un moyen d'enregistrer et de réutiliser un modèle LGBM dans un fichier. J'ai utilisé le package python lightgbm et le modèle LGBMRegressor. S'il te plait peux-tu aider? Les documentations ne semblent pas contenir d'informations utiles. J'utilise python 3.5 sur Spyder

11
Utpal Datta 17 mars 2019 à 18:33

4 réponses

Meilleure réponse

Essayer:

my_model.booster_.save_model('mode.txt')
#load from model:

bst = lgb.Booster(model_file='mode.txt')

Vous pouvez également utiliser des cornichons:

import joblib
# save model
joblib.dump(my_model, 'lgb.pkl')
# load model
gbm_pickle = joblib.load('lgb.pkl')

Dis moi si ça aide

21
Prayson W. Daniel 21 janv. 2020 à 11:51

Pour Python 3.7 et lightgbm==2.3.1, j'ai trouvé que les réponses précédentes étaient insuffisantes pour enregistrer et charger correctement un modèle. Les éléments suivants ont fonctionné :

lgbr = lightgbm.LGBMRegressor(num_estimators = 200, max_depth=5)
lgbr.fit(train[num_columns], train["prep_time_seconds"])
preds = lgbr.predict(predict[num_columns])
lgbr.booster_.save_model('lgbr_base.txt')

Enfin, nous pouvons valider que cela a fonctionné via :

model = lightgbm.Booster(model_file='lgbr_base.txt')
model.predict(predict[num_columns])

Sans ce qui précède, j'obtenais l'erreur : AttributeError: 'LGBMRegressor' object has no attribute 'save_model'

0
JFRANCK 28 nov. 2020 à 22:18
clf.save_model('lgbm_model.mdl')
clf = lgb.Booster(model_file='lgbm_model.mdl')
1
amalik2205 13 mai 2020 à 09:40

Avec la dernière version de lightGBM utilisant import lightgbm as lgb, voici comment procéder:

model.save_model('lgb_classifier.txt', num_iteration=model.best_iteration) 

Puis vous pouvez lire le modèle comme suit:

model = lgb.Booster(model_file='lgb_classifier.txt')
7
Soufiane Chami 26 juin 2019 à 13:35