嗨,我无法找到一种方法来保存lightgbm.LGBMRegressor模型到一个文件供以后重用。
lightgbm.LGBMRegressor
rkue9o1l1#
试试看:
my_model.booster_.save_model('mode.txt') #load from model: bst = lgb.Booster(model_file='mode.txt')
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')
如果有帮助就告诉我
qnakjoqk2#
对于Python 3.7和lightgbm==2.3.1,我发现前面的答案不足以正确地保存和加载模型。
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'
AttributeError: 'LGBMRegressor' object has no attribute 'save_model'
vhmi4jdf3#
对于使用import lightgbm as lgb的最新版本的lightGBM,以下是具体操作:
import lightgbm as lgb
model.save_model('lgb_classifier.txt', num_iteration=model.best_iteration)
然后你就可以看到这个模型如下:
model = lgb.Booster(model_file='lgb_classifier.txt')
v1uwarro4#
clf.save_model('lgbm_model.mdl') clf = lgb.Booster(model_file='lgbm_model.mdl')
4条答案
按热度按时间rkue9o1l1#
试试看:
根据版本的不同,上面的一个可以工作。对于通用的,你也可以使用pickle或类似的东西来冻结你的模型。
如果有帮助就告诉我
qnakjoqk2#
对于Python 3.7和
lightgbm==2.3.1
,我发现前面的答案不足以正确地保存和加载模型。最后,我们可以通过以下方式验证这是否有效:
如果没有上述内容,我会得到错误:
AttributeError: 'LGBMRegressor' object has no attribute 'save_model'
vhmi4jdf3#
对于使用
import lightgbm as lgb
的最新版本的lightGBM,以下是具体操作:然后你就可以看到这个模型如下:
v1uwarro4#