Auf dem Link von XGBoost Guide ,
bst.save_model('0001.model')
bst.dump_model('dump.raw.txt') # dump model
bst.dump_model('dump.raw.txt','featmap.txt')# dump model with feature map
bst = xgb.Booster({'nthread':4}) #init model
bst.load_model("model.bin") # load data
Meine Frage ist :
save_model
& dump_model
? '0001.model'
und 'dump.raw.txt','featmap.txt'
?model.bin
von dem zu speichernden Namen 0001.model
? model_A
und model_B
trainiert. Ich wollte beide Modelle für die zukünftige Verwendung speichern. Welche save
& load
-Funktion sollte ich verwenden? Könnten Sie helfen, den klaren Prozess zu zeigen?Beide Funktionen save_model
und dump_model
speichern das Modell. Der Unterschied besteht darin, dass Sie in dump_model
den Namen der Funktion und den Baum im Textformat speichern können.
Der load_model
funktioniert mit dem Modell von save_model
. Das Modell aus dump_model
kann zum Beispiel mit xgbfi verwendet werden.
Beim Laden des Modells müssen Sie den Pfad angeben, in dem Ihre Modelle gespeichert werden. Im Beispiel wird bst.load_model("model.bin")
das Modell aus der Datei model.bin
geladen - es ist nur ein Dateiname mit dem Modell. Viel Glück!
Ein einfaches Speichern und Laden eines Xgboost-Modells bietet die Joblib-Bibliothek.
import joblib
#save model
joblib.dump(xgb, filename)
#load saved model
xgb = joblib.load(filename)
Ich habe hierher gefunden, weil ich nach einer Möglichkeit gesucht habe, mein xgboost-Modell zu speichern und zu laden. So habe ich mein Problem gelöst:
import pickle
file_name = "xgb_reg.bin"
# save
pickle.dump(xgb_model, open(file_name, "wb"))
# load
xgb_model_loaded = pickle.load(open(file_name, "rb"))
# test
ind = 1
test = X_val[ind]
xgb_model_loaded.predict(test)[0] == xgb_model.predict(test)[0]
Out[1]: True