2

以下は、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_modelandを使用した場合、同じ問題が発生することに注意してください。model.load_model

私が行った簡単なチェックでは、モデルが適切に保存およびロードされていることがわかりました。のダンプmodel._Booster( 経由で取得model._Booster.dump_model(some_file)) とloaded_model._Booster同一です。

Python バージョン: 3.7.5

xgboost バージョン: 0.80 と 0.90 の両方を試しました

どんな提案でも大歓迎です。

4

0 に答える 0