LightGBM如何保存模型?
⽤lgb保存模型遇到了⼏个坑,在这⾥记录⼀下。
Lightgbm.LGBMClassifier训练⽣成模型时,Scikit-learn 官⽹上建议的:
在⽤Lightgbm.LGBMClassifier
1.pickle⽅式
这⾥我写了保存和加载两种⽅式:
import pickle
def pkl_save(filename,file):
output = open(filename, 'wb')
pickle.dump(file, output)
output.close()
def pkl_load(filename):
pkl_file = open(filename, 'rb')
file = pickle.load(pkl_file)
pkl_file.close()
return file
2.joblib⽅式
als import joblib
joblib.dump(model_lgb, 'dota_model.pkl')
clf = joblib.load('dota_model.pkl')
但是,使⽤你这两种⽅式遇到了⼀个坑,那就是sklearn版本的问题
sklearn版本的问题!
ModuleNotFoundError: No module named 'sklearn.preprocessing.label'”你可会发现这个错误“ModuleNotFoundError: No module named 'sklearn.preprocessing.label'产⽣这个的原因,是其实已经提醒我们了,
import pickle在版本⼤于0.21的情况下,函数发⽣了变化。
所以我们介绍第3中保存lightGBM的⽅式。
3. Booster
clf = lgb.LGBMClassifier( ... )
clf.fit(X_train, y_train, **fit_params)
clf.booster_.savemodel("")
加载:
clf_loads = lgb.Booster(model_file='')
probas = clf_fs.predict(test)
需要注意的是,这⾥的是predict⽽不是predict_proba,得到概率。
,在这种情况下:
,从事该项⽬的Microsoft开发⼈员 ,在这种情况下:
上所述的(现已关闭) ,从事该项⽬的Microsoft开发⼈员
在上所述的(现已关闭)
booster.predict()实际上将返回概率
。
因此,不应该写predict_proba 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论