如何保存到磁盘/导出一个用python训练的lightgbm LGBMRegressor模型?

uyhoqukh  于 2023-01-01  发布在  Python
关注(0)|答案(4)|浏览(496)

嗨,我无法找到一种方法来保存lightgbm.LGBMRegressor模型到一个文件供以后重用。

rkue9o1l

rkue9o1l1#

试试看:

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

如果有帮助就告诉我

qnakjoqk

qnakjoqk2#

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

vhmi4jdf

vhmi4jdf3#

对于使用import lightgbm as lgb的最新版本的lightGBM,以下是具体操作:

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

然后你就可以看到这个模型如下:

model = lgb.Booster(model_file='lgb_classifier.txt')
v1uwarro

v1uwarro4#

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

相关问题