lightGBM文件保存

1.使用lightGBM原生的接口保存为txt文件

# 模型训练
gbm = lgb.train(params, lgb_train, num_boost_round=20, valid_sets=lgb_eval, early_stopping_rounds=5)
# 模型保存
gbm.save_model('model.txt')
# 模型加载
gbm = lgb.Booster(model_file='model.txt')
# 模型预测
y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)

2.使用pickle保存为pkl文件

import pickle 

pickle.dump("lightGBMmodel.pkl")     

pickle.load("lightGBMmodel.pkl");

// 凭记忆书写的代码,加载出错的话需要查一下pickle的具体用法

注意事项:

1).Python2版本的pickle文件和Python3版本的pickle不能互相加载,若要通用最好使用txt文件。

2).Python2的pkl转Python3的pkl模型文件可以通过lightGBM加载txt文件作为中介进行转化。

3.使用sklearn封装的接口保存为pkl文件

sklearn序列化模型好像就是pickle文件的封装

from lightgbm import LGBMRegressor
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.externals import joblib
# 模型训练
gbm = LGBMRegressor(objective='regression', num_leaves=31, learning_rate=0.05, n_estimators=20)
gbm.fit(X_train, y_train, eval_set=[(X_test, y_test)], eval_metric='l1', early_stopping_rounds=5)
# 模型存储
joblib.dump(gbm, 'loan_model.pkl')
# 模型加载
gbm = joblib.load('loan_model.pkl')
# 模型预测
y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration_)

4.sklearn模型和lightGBM模型模型互存

4.1 skleran模型的lightGBM的pkl文件转化为lightGBM的txt模型文件

import sys
import lightgbm as lgb
if sys.version_info.major == 2:
    from sklearn.externals import joblib
else:
    import joblib
model=joblib.load("sqli/sql_mls.m")
model.booster_.save_model("xxxxx.txt")
gbm = lgb.Booster(model_file='xxxxx.txt')   # 验证是否转化成功

4.2 lightGBM的txt模型文件转化为skleran模型的lightGBM的pkl文件

可通过原生lightGBM加载txt模型然后使用步骤3转化

注意事项:lightGBM模型文件开头具有版本号,注意加载的版本号。

你可能感兴趣的:(机器学习算法,sklearn,人工智能,python)