经过训练,可以保存模型。 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
我的问题如下。
save_model
和dump_model
有什么区别?'0001.model'
和'dump.raw.txt','featmap.txt'
有什么区别?model.bin
的模型名与要保存的0001.model
名称不同model_A
和model_B
。我想把这两种型号都保存起来以备将来使用。我应该使用哪个save
& load
函数?你能帮我展示清楚的过程吗?发布于 2019-09-10 16:29:20
下面是我解决这个问题的方法:
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
发布于 2017-05-22 13:36:57
两个函数save_model
和dump_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中,否则就是文本文件。
发布于 2018-04-18 10:35:24
保存和加载xgboost模型的一种简单方法是使用joblib库。
import joblib
#save model
joblib.dump(xgb, filename)
#load saved model
xgb = joblib.load(filename)
https://stackoverflow.com/questions/43691380
复制相似问题