web-dev-qa-db-fra.com

Comment sauvegarder et charger le modèle xgboost?

Sur le lien de Guide XGBoost

  1. Le modèle peut être sauvegardé . bst.save_model('0001.model')
  2. Le modèle et sa carte de fonctions peuvent également être transférés dans un fichier texte.
    bst.dump_model('dump.raw.txt') # dump model bst.dump_model('dump.raw.txt','featmap.txt')# dump model with feature map
  3. Un modèle enregistré peut être chargé comme suit: bst = xgb.Booster({'nthread':4}) #init model bst.load_model("model.bin") # load data

Ma question est :

  1. quelle est la différence entre save_model et dump_model
  2. quelle est la différence entre enregistrer '0001.model' et 'dump.raw.txt','featmap.txt'?
  3. pourquoi le nom de modèle pour charger model.bin est différent du nom à enregistrer 0001.model
  4. Supposons que j'ai formé deux modèles model_A et model_B, je voulais enregistrer les deux modèles pour une utilisation ultérieure. Quelle fonction save & load devrais-je utiliser? Pourriez-vous aider à montrer le processus clair?
17
Pengju Zhao

Les deux fonctions save_model et dump_model enregistrent le modèle. La différence est que, dans dump_model, vous pouvez enregistrer le nom de la fonctionnalité et l’arborescence au format texte.

Le load_model fonctionnera avec le modèle de save_model. Le modèle de dump_model peut être utilisé par exemple avec xgbfi .

Lors du chargement du modèle, vous devez spécifier le chemin où vos modèles sont enregistrés. Dans l'exemple bst.load_model("model.bin"), le modèle est chargé à partir du fichier model.bin - il ne s'agit que du nom du fichier avec le modèle. Bonne chance!

8
pplonski

Un moyen facile de sauvegarder et de charger un modèle xgboost est d'utiliser la bibliothèque joblib.

import joblib
#save model
joblib.dump(xgb, filename) 

#load saved model
xgb = joblib.load(filename)
1
Ioannis Nasios