XGBoostガイド](http://xgboost.readthedocs.io/en/latest/python/python_intro.html)のリンク先で。
1.モデルを保存することができます。
bst.save_model('0001.model')
2.モデルとそのフィーチャーマップは、テキストファイルにダンプすることも可能です。
bst.dump_model('dump.raw.txt') # モデルのダンプ
bst.dump_model('dump.raw.txt','featmap.txt')# モデルと特徴マップを一緒にダンプする。
3.保存されたモデルは以下のように読み込むことができる。
bst = xgb.Booster({'nthread':4}) #init モデル
bst.load_model("model.bin") # データを読み込む
私の質問は、:
save_model
と dump_model
の違いは何でしょうか?'0001.model'
と 'dump.raw.txt','featmap.txt'
の保存の違いは何でしょうか?model.bin
と保存するモデル名 0001.model
はなぜ違うのでしょうか?
4.4. 2つのモデル model_A
と model_B
を学習させたとします。将来使用するために両方のモデルを保存したいと思いますが、どの save
& load
関数を使用するべきですか?明確なプロセスを示すのに役立ちますでしょうか?関数 save_model
と dump_model
はどちらもモデルを保存しますが、 dump_model
ではフィーチャー名を保存したり、テキスト形式でツリーを保存したりすることができる点が異なります。
load_modelは
save_modelから取得したモデルで動作します。dump_model
のモデルは、例えば、xgbfi で使用することができます。
モデルのロード時に、モデルを保存しているパスを指定する必要があります。この例では bst.load_model("model.bin")
ファイル model.bin
からモデルをロードしています - これは単にモデルを含むファイル名です。幸運を祈ります。
xgboostモデルの保存と読み込みの方法を探していて、ここにたどり着きました。 以下は、私が問題を解決した方法です。
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