以下是我如何训练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 进程不同的 python 进程中加载的,则预测是不正常的(随机(。
请注意,如果使用model.save_model
和model.load_model
而不是泡菜,我也有同样的问题。
我所做的简单检查表明模型已正确保存和加载;model._Booster
(通过model._Booster.dump_model(some_file)
获取(和loaded_model._Booster
的转储是相同的。
蟒蛇版本:3.7.5
xgboost 版本:尝试了 0.80 和 0.90
任何建议不胜感激。
就我而言,我在预测导致不同性能时更改了列顺序。训练数据和预测数据的列顺序必须相同