首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何保存和加载xgboost模型?

如何保存和加载xgboost模型?
EN

Stack Overflow用户
提问于 2017-04-29 03:05:03
回答 5查看 134.6K关注 0票数 84

来自XGBoost指南

经过训练,可以保存模型。 Bst.save_model(‘0001型’) 还可以将模型及其特征映射转储到text file.dump model bst.dump_model('dump.raw.txt') # dump模型bst.dump_model('dump.raw.txt','featmap.txt') --保存的模型如下: bst =xgb.Booster({‘n线程’:4}) # init模型bst.load_model('model.bin') # load data

我的问题如下。

  1. save_modeldump_model有什么区别?
  2. 保存'0001.model''dump.raw.txt','featmap.txt'有什么区别?
  3. 为什么加载model.bin的模型名与要保存的0001.model名称不同
  4. 假设我训练了两个模型:model_Amodel_B。我想把这两种型号都保存起来以备将来使用。我应该使用哪个save & load函数?你能帮我展示清楚的过程吗?
EN

回答 5

Stack Overflow用户

发布于 2019-09-10 16:29:20

下面是我解决这个问题的方法:

代码语言:javascript
运行
复制
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
票数 44
EN

Stack Overflow用户

发布于 2017-05-22 13:36:57

两个函数save_modeldump_model都保存模型,区别是在dump_model中您可以保存特征名和保存树的文本格式。

load_model将与来自save_model的模型一起工作。例如,dump_model的模型可以与xgbfi一起使用。

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

编辑:在Xgboost文档中(对于1.3.3版本),应该使用dump_model()来保存模型以供进一步解释。为了保存和加载模型,应该使用save_model()load_model()。有关更多细节,请查看文档

Learning API和Xgboost的Scikit-Learn API也有区别。后者保存了best_ntree_limit变量,该变量是在训练过程中设置的,具有早期停止。您可以在我的文章如何在Python中保存和加载Xgboost?中阅读详细信息。

save_model()方法识别文件名的格式,如果指定了*.json,那么模型将保存在JSON中,否则就是文本文件。

票数 40
EN

Stack Overflow用户

发布于 2018-04-18 10:35:24

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

代码语言:javascript
运行
复制
import joblib
#save model
joblib.dump(xgb, filename) 

#load saved model
xgb = joblib.load(filename)
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43691380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档