LightGBM如何保存模型?
生活随笔
收集整理的這篇文章主要介紹了
LightGBM如何保存模型?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用lgb保存模型遇到了幾個坑,在這里記錄一下。
在用Lightgbm.LGBMClassifier訓練生成模型時,Scikit-learn 官網上建議的兩種方式:
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 file2.joblib方式
from sklearn.externals import joblib joblib.dump(model_lgb, 'dota_model.pkl') clf = joblib.load('dota_model.pkl')但是,使用你這兩種方式遇到了一個坑,那就是sklearn版本的問題!
你可會發現這個錯誤“ModuleNotFoundError: No module named 'sklearn.preprocessing.label'”
產生這個的原因,是其實已經提醒我們了,
在版本大于0.21的情況下,函數發生了變化。
所以我們介紹第3中保存lightGBM的方式。
3. Booster
clf = lgb.LGBMClassifier( ... ) clf.fit(X_train, y_train, **fit_params) clf.booster_.savemodel("dota_model.txt")加載:
clf_loads = lgb.Booster(model_file='dota_model.txt') probas = clf_fs.predict(test)需要注意的是,這里的是predict而不是predict_proba,得到概率。
在Github上所述的(現已關閉) #1217問題中 ,從事該項目的Microsoft開發人員說 ,在這種情況下:
booster.predict()實際上將返回概率因此,不應該寫predict_proba 。
總結
以上是生活随笔為你收集整理的LightGBM如何保存模型?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ALL in BERT:一套操作冲进排行
- 下一篇: PurdueUCLA提出梯度Boosti