以下は、XGBClassifier をトレーニングして保存する方法です。
import pickle
from xgboost import XGBClassifier
# train
model = XGBClassifier()
model.fit(X, y)
# export
pickle.dump(model, open('model.pickle', 'wb'))
これは、モデルをロードして予測を行った方法です
loaded_model = pickle.load(open('model.pickle', 'rb'))
y_pred = loaded_model.predict(X)
トレーニングが実行されたのと同じ python プロセス内からモデルが読み込まれた場合、モデルの予測は問題ありませんが、モデルがトレーニングに使用されたものとは異なる python プロセスから読み込まれた場合、予測は適切ではありません (ランダム)。
ピクルスの代わりにmodel.save_model
andを使用した場合、同じ問題が発生することに注意してください。model.load_model
私が行った簡単なチェックでは、モデルが適切に保存およびロードされていることがわかりました。のダンプmodel._Booster
( 経由で取得model._Booster.dump_model(some_file)
) とloaded_model._Booster
同一です。
Python バージョン: 3.7.5
xgboost バージョン: 0.80 と 0.90 の両方を試しました
どんな提案でも大歓迎です。