将 LGBMRegressor 模型从 python lightgbm 包保存到光盘

Save LGBMRegressor model from python lightgbm package to disc

您好,我找不到将 LGBM 模型保存并重复使用到文件的方法。我使用了 python 包 lightgbm 和 LGBMRegressor 模型。能否请你帮忙?文档似乎没有有用的信息。我在 Spyder

上使用 python 3.5

尝试:

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')

如果有帮助请告诉我

使用 import lightgbm as lgb 的最新版本的 lightGBM,以下是操作方法:

model.save_model('lgb_classifier.txt', num_iteration=model.best_iteration) 

然后您可以按如下方式阅读模型:

model = lgb.Booster(model_file='lgb_classifier.txt')
clf.save_model('lgbm_model.mdl')
clf = lgb.Booster(model_file='lgbm_model.mdl')

对于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'