下面是我如何训练 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
请注意,如果使用和model.load_model
代替泡菜,我也会遇到同样的问题。
我所做的简单检查表明模型已正确保存和加载;model._Booster
(通过获得)的转储model._Booster.dump_model(some_file)
和loaded_model._Booster
是相同的。
Python版本:3.7.5
xgboost 版本:尝试了 0.80 和 0.90
任何建议表示赞赏。