如何保存和加载xgboost模型?
machine-learning
python
xgboost
5
0

XGBoost指南的链接上,

  1. 可以保存模型。 bst.save_model('0001.model')
  2. 模型及其特征图也可以转储到文本文件中。
    bst.dump_model('dump.raw.txt') # dump model bst.dump_model('dump.raw.txt','featmap.txt')# dump model with feature map
  3. 可以按以下方式加载保存的模型: bst = xgb.Booster({'nthread':4}) #init model bst.load_model("model.bin") # load data

我的问题是:

  1. save_modeldump_model什么dump_model
  2. 保存'0001.model''dump.raw.txt','featmap.txt'什么'dump.raw.txt','featmap.txt'
  3. 为什么加载型号名称model.bin是从不同的名字要保存0001.model
  4. 假设我训练了两个模型model_Amodel_B ,我想保存两个模型以备将来使用,应该使用哪个saveload功能?您能帮忙说明清楚的过程吗?
参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

Joblib库是保存和加载xgboost模型的一种简单方法。

import joblib
#save model
joblib.dump(xgb, filename) 

#load saved model
xgb = joblib.load(filename)
收藏
评论

函数save_modeldump_model保存模型,区别在于在dump_model您可以保存特征名称并以文本格式保存树。

load_model将与save_model模型save_modeldump_model的模型可以与xgbfi一起使用。

在加载模型期间,您需要指定保存模型的路径。在示例中, bst.load_model("model.bin")模型是从文件model.bin加载的-它只是具有model的文件的名称。祝好运!

收藏
评论

我在这里找到了自己的出路,因为我正在寻找一种保存和加载我的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
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号