一、背景
使用 Python 的機器學習模塊 sklearn 進行模型訓練時,如果訓練集保持不變,可將模型訓練的模型結果保存為 .model 文件,以供預測時使用,避免每次運行時都要重新訓練模型。
joblib 可實現保存模型,並將保存的模型取出用於預測。
二、實操
# 導入模塊
import lightgbm as lgb # LGB算法
from sklearn.externals import joblib
# 模型訓練
model_lgb = lgb.LGBMClassifier(boosting_type='gbdt', # gbdt 梯度提升決策樹
metric = 'auc',
n_estimators = 180,
learning_rate = 0.05,
is_unbalance = 'true',
objective = 'binary', # 任務分類、回歸
random_state = 1,
min_child_samples = 110,
min_child_weight = 5,
num_leaves = 50)
model_lgb.fit(x_train, y_train)
# 保存模型
joblib.dump(model_lgb, r'E:\model.pkl')
# 加載模型
model_lgb = joblib.load(r'E:\model.pkl')
# 應用模型進行預測
predict = model_lgb.predict_proba(product)
三、注意
執行 joblib.dump() 保存模型后,可能還會生成若干個以 lgb.model_xx.npy 為命名格式的文件,這可能是用於保存模型中的系數等的二進制文件。
其具體生成的文件個數還會隨着調用的分類器的不同,以及分類器中迭代次數的參數的不同而變,有時候會生成幾個,有時候會生成幾百個。
需要注意。
參考鏈接:python sklearn模型的保存
