关于xgboost如何加载老版本模型的技巧分享
关于xgboost如何加载老版本模型的技巧分享
背景:
随着机器学习越来越火爆,第三方库也在不断更新迭代,那么如何将老版本库训练处的模型适配到新环境中,相信是大家早晚会遇到的问题。
简单来说解决方案有两种:
1.用新的环境,原来的数据重新训练一次(不够优雅);
2.直接将现有模型升级到新版本兼容模式
目的:
本文分享xgboost如何将老版本模型升级到新版,满足项目环境要求
实操过程
环境申明
原有环境:python=3.6.6 xgboost=0.9
目标环境:python=3.8 xgboost=1.2.0
操作步骤
步骤一:创建好两个虚拟环境
环境一:
conda create -n py366 python==3.6.6
pip install xgboost==0.9
环境二:
conda create -n py366 python==3.8
pip install xgboost==1.2.0
步骤二:在环境一中加载源模型
一定要是.bin文件结尾,官网要求.json格式,实测解析失败
import xgboost
import pickle
# 模型加载
loaded_model = pickle.load(open('/XXX/model.pkl','rb'))
# 模型保存
loaded_model.save_model('test_model.bin')
步骤三:在环境二中升级模型
import xgboost as xgb
import pickle
#利用booster升级模型版本
booster = xgb.Booster()
booster.load_model('/xxx/test_model.bin')
#加载罪行模型
pickle.dump(booster, open("model.bst", "wb"))
大功告成!!!