如何保存到磁盘/导出在 python 中训练的 lightgbm LGBMRegressor 模型?

新手上路,请多包涵

您好,我无法找到一种方法来将 lightgbm.LGBMRegressor 模型保存到文件中供以后重新使用。

原文由 Utpal Datta 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

对于 Python 3.7 和 lightgbm==2.3.1 ,我发现之前的答案不足以正确保存和加载模型。以下工作:

 lgbr = lightgbm.LGBMRegressor(num_estimators = 200, max_depth=5)
lgbr.fit(train[num_columns], train["prep_time_seconds"])
preds = lgbr.predict(predict[num_columns])
lgbr.booster_.save_model('lgbr_base.txt')

最后,我们可以通过以下方式验证这是否有效:

 model = lightgbm.Booster(model_file='lgbr_base.txt')
model.predict(predict[num_columns])

如果没有以上内容,我会收到错误消息: AttributeError: 'LGBMRegressor' object has no attribute 'save_model'

原文由 JFRANCK 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试:

 my_model.booster_.save_model('mode.txt')
#load from model:

bst = lgb.Booster(model_file='mode.txt')

注意:API 声明

bst = lgb.train(…)
bst.save_model('model.txt', num_iteration=bst.best_iteration)

根据版本的不同,上述方法之一有效。对于通用的,您还可以使用 pickle 或类似的东西来冻结您的模型。

 import joblib
# save model
joblib.dump(my_model, 'lgb.pkl')
# load model
gbm_pickle = joblib.load('lgb.pkl')

让我知道是否有帮助

原文由 Prayson W. Daniel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题