用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 file

2.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如何保存模型?相关推荐

  1. Keras框架下的保存模型和加载模型

    在Keras框架下训练深度学习模型时,一般思路是在训练环境下训练出模型,然后拿训练好的模型(即保存模型相应信息的文件)到生产环境下去部署.在训练过程中我们可能会遇到以下情况: 需要运行很长时间的程序在 ...

  2. 随机森林 java_机器学习weka,java api调用随机森林及保存模型

    工作需要,了解了一下weka的java api,主要是随机森林这一块,刚开始学习,记录下. 了解不多,直接上demo,里面有一些注释说明: package weka; import java.io.F ...

  3. python保存模型与参数_如何导出python中的模型参数

    模型的保存和读取 1.tensorflow保存和读取模型:tf.train.Saver() .save()#保存模型需要用到save函数 save( sess, save_path, global_s ...

  4. python 保存模型、加载模型 Joblib

    支持数据类型:字典,列表,numpy. 保存模型: saved_data = {"ROI": pts}joblib.dump(value=saved_data, filename= ...

  5. Tensorflow加载预训练模型和保存模型(ckpt文件)以及迁移学习finetuning

    使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...

  6. mxnet保存模型,加载模型来预测新数据

    mxnet保存模型,以及用模型来预测新数据 我们希望训练好之后的模型,可以保存下来,然后需要预测新数据的时候,就可以拿来用,可以这样做.  我们以线性回归的例子来讲:  1,训练并保存模型. impo ...

  7. PyTorch 保存模型结构参数及加载模型

    PyTorch 保存模型结构参数及加载模型 保存模型与加载 保存模型分为两种方式: 保存整个网络结构和参数 保存整个网络的参数 # 1.保存并加载整个网络结构和参数 # 保存模型 torch.save ...

  8. Pytorch学习 - 保存模型和重新加载

    Pytorch学习 - 保存和加载模型 1. 3个函数 2. 模型不同后缀名的区别 3. 保存和重载模型 参考资料: Pytorch官方文档链接 某博客 1. 3个函数 torch.save() : ...

  9. pytorch保存模型pth_Day159:模型的保存与加载

    网络结构和参数可以分开的保存和加载,因此,pytorch保存模型有两种方法: 保存 整个模型 (结构+参数) 只保存模型参数(官方推荐) # 保存整个网络torch.save(model, check ...

最新文章

  1. xp下安装sqlserver 2000的解决方案
  2. 【腾讯二面】5s内建立多少个mysql连接?
  3. Java中console类的简单用法
  4. kafka分区及副本在broker的分配
  5. ***解决UEditor编辑器无法插入第三方视频地址
  6. aspx写入mysql_Asp.net用户登陆数据库验证与注册写入数据库
  7. 我的爹,我的娘(2006-02-22 21:39:07)(新浪)
  8. IplImage* cvmat* mat 释放
  9. Community Server架构:博客业务详细分析(转)
  10. C Tricks(十五)—— 算符优先级的表示
  11. [转载] Java中自定义异常的声明与处理
  12. appscan 9.0.3.12 版本下载
  13. python 模拟鼠标键盘_如何用 python 模拟鼠标和键盘的操作
  14. win10磁盘管理_一步一步的详细讲解Win10磁盘分区教程
  15. React开发(250):react项目理解 ant design loding控制页面转圈加载
  16. 经历过CMMI后的体会和总结,为什么别人的时间总是比你的值钱
  17. Rimworld Mod制作教程2 创建数据定义
  18. 快速开发小程序——案例
  19. 遇到pdf文件损坏打不开要如何解决?
  20. MATLAB 一幅图两个纵坐标(附带功能:设置字体、颜色、字号、坐标轴显示范围、显示间隔、加百分号)

热门文章

  1. 浅谈对离散型随机变量期望的理解
  2. iOS-NSData与NSDictionary的互相转换
  3. AS3中 is,as,typeof的区别 .
  4. hdu_2063,二分图最大匹配的学习
  5. java适配器模式 场景_Java设计模式之《适配器模式》及应用场景
  6. JavaSE(十一)——多线程
  7. python flask服务_在python中Flask配置服务
  8. 计算机视觉与深度学习 | 使用HOG特征进行数字分类
  9. 220v变12v初级线圈匝数_12V升220V升压变压器线圈绕法计算
  10. android 的弱网测试,Android APP弱网测试问题和解决分析