Pen*_*hao 26 python machine-learning save xgboost
在XGBoost指南的链接上,
bst.save_model('0001.model')
bst.dump_model('dump.raw.txt') # dump model
bst.dump_model('dump.raw.txt','featmap.txt')# dump model with feature map
bst = xgb.Booster({'nthread':4}) #init model
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我应该使用功能?你能帮忙展示清楚的过程吗?Rob*_*tty 14
如果您使用 sklearn api,您可以使用以下命令:
xgb_model_latest = xgboost.XGBClassifier() # or which ever sklearn booster you're are using
xgb_model_latest.load_model("model.json") # or model.bin if you are using binary format and not the json
Run Code Online (Sandbox Code Playgroud)
如果您使用上述 booster 方法进行加载,您将在 python api 中获得 xgboost booster,而不是 sklearn api 中的 sklearn booster。
所以,是的,如果您使用 sklearn api,这似乎是加载保存的 xgboost 模型数据的最 Pythonic 方式。
Joblib库是保存和加载xgboost模型的一种简单方法。
import joblib
#save model
joblib.dump(xgb, filename)
#load saved model
xgb = joblib.load(filename)
Run Code Online (Sandbox Code Playgroud)
我在这里找到了自己的出路,因为我正在寻找一种保存和加载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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33592 次 |
| 最近记录: |