Bagaimana cara menyimpan &; memuat model xgboost?

Pada tautan panduan XGBoost,

  1. Model dapat disimpan.
    bst.save_model('0001.model')
  2. Model dan peta fiturnya juga dapat dibuang ke file teks.
    bst.dump_model('dump.raw.txt') # dump model
    bst.dump_model('dump.raw.txt','featmap.txt')# dump model dengan peta fitur
  3. Model yang disimpan dapat dimuat sebagai berikut:
    bst = xgb.Booster({'nthread':4}) #init model
    bst.load_model("model.bin") #memuat data

Pertanyaan saya adalah:

  1. Apa perbedaan antara save_model &; dump_model?
  2. Apa perbedaan antara menyimpan '0001.model' dan 'dump.raw.txt','featmap.txt'?
  3. Mengapa nama model untuk loading model.bin berbeda dengan nama yang akan disimpan 0001.model?
  4. Misalkan saya melatih dua model model_A```` danmodel_B, saya ingin menyimpan kedua model tersebut untuk digunakan di masa depan, fungsi `save` &;load``` mana yang harus saya gunakan? Bisakah anda membantu menunjukkan proses yang jelas?

Kedua fungsi save_model dan dump_model menyimpan model, perbedaannya adalah bahwa dalam dump_model Anda dapat menyimpan nama fitur dan menyimpan pohon dalam format teks.

load_model akan bekerja dengan model dari save_model. Model dari dump_model dapat digunakan misalnya dengan xgbfi.

Selama memuat model, Anda perlu menentukan path dimana model Anda disimpan. Pada contoh bst.load_model("model.bin") model dimuat dari file model.bin - itu hanya nama file dengan model. Semoga berhasil!

Komentar (0)

Cara mudah untuk menyimpan dan memuat model xgboost adalah dengan pustaka joblib.

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

#load saved model
xgb = joblib.load(filename)
Komentar (3)

Saya menemukan jalan ke sini karena saya sedang mencari cara untuk menyimpan dan memuat model xgboost saya. Inilah cara saya memecahkan masalah saya:

import pickle
file_name = "xgb_reg.pkl"

# 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
Komentar (0)