炼丹笔记:记录我们的成长轨迹


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 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的metric有哪些?

  1. “None”(字符串),表示无度量,等效于na,null,custom
  2. l1(absolute loss),等效于mean_absolute_error,mae,regression_l1
  3. l2(square loss),等效于mean_squared_error,mse,regression_l2,regression
  4. rmse(平方根损失),等效于root_mean_squared_error,l2_root
  5. quantile,分位数回归
  6. mape(MAPE损失),等效于mean_absolute_percentage_error
  7. huber(huber损失)
  8. fair(fair损失)
  9. poisson,泊松回归的负对数似然
  10. gamma,Gamma回归的负对数似然
  11. gamma_deviance,Gamma回归残差
  12. tweedie,Tweedie回归的负对数似然
  13. ndcg,等效于lambdarank,rank_xendcg,xendcg,xe_ndcg,xe_ndcg_mart,xendcg_mart
  14. map,等效于mean_average_precision
  15. auc
  16. average_precision,平均精度得分
  17. binary_logloss,log loss,等效于binary
  18. binary_error,对于单样本,0用于正确分类,1用于错误分类
  19. auc_mu
  20. multi_logloss,多分类log loss,等效于multiclass,softmax,multiclassova,multiclass_ova,ova,ovr
  21. multi_error,多分类错误率
  22. cross_entropy,交叉熵(具有可选的线性权重),等效于xentropy
  23. cross_entropy_lambda,“intensity-weighted”交叉熵,等效于 xentlambda
  24. kullback_leibler,Kullback-Leibler散度,等效于kldiv

如何多个评价指标?

支持多个指标,使用“,”分隔。

  • ‘metric’: {‘binary_logloss’, ‘auc’}

LightGBM笔记相关推荐

  1. 龙珠机器学习训练营-LightGBM笔记

    本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:添加链接描述 1.学习知识点概要 了解 LightGBM 的参数与相关知识: 掌握 LightGBM 的Python调用并将其运用到 ...

  2. 机器学习笔记-LightGBM

    LightGBM 中文文档中文文档:https://lightgbm.apachecn.org/#/ 天池学习笔记:AI训练营机器学习-阿里云天池 LightGBM的介绍 LightGBM是2017年 ...

  3. 阿里机器学习训练营 Day 3 lightGBM 学习笔记

    此笔记为阿里云天池机器学习训练营笔记,学习地址:https://tianchi.aliyun.com/s/1fc36a7e103eb9948c974f638e83a83b 感谢教程及阿里云提供平台 1 ...

  4. 龙珠训练营机器学习-LightGBM学习笔记

    本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:点我跳转 感谢各位的阅读 学习知识点概要 学习内容 1.LightGBM的介绍与应用 1.1 LightGBM的介绍 1.1.1 L ...

  5. 天池龙珠训练营-机器学习学习笔记-03 LightGBM 分类

    天池龙珠训练营-机器学习学习笔记-03 LightGBM 分类 本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:训练营 一 原理简介: 它是一款基于GBDT(梯度提升决策树)算法的 ...

  6. 《LightGBM: A Highly Efficient Gradient Boosting Decision Tree》论文笔记

    1 简介 本文根据2017年microsoft研究所等人写的论文<LightGBM: A Highly Efficient Gradient Boosting Decision Tree> ...

  7. 提升算法——lightGBM原理学习笔记

    中文官方文档:http://lightgbm.apachecn.org/cn/latest/Installation-Guide.html 英文官方文档:https://lightgbm.readth ...

  8. 影像组学视频学习笔记(14)-特征权重做图及美化、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(14)主要介绍: 特征权重做图及美化 import matplotlib.pyplot as plt %matplotlib inlin ...

  9. 影像组学视频学习笔记(12)-支持向量机(SVM)参数优化(代码)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(12)主要介绍: SVM参数优化(代码) 参数优化: 自动寻找最合适的γ和C组合. 原理:遍历所有给定的参数组合,对数据进行训练,找到最 ...

最新文章

  1. 高并发下的秒杀系统架构设计实战!
  2. Linux下的查找命令
  3. 如何获取元素与当前可视区域顶部的距离
  4. ARM-Button-Driver-硬件图
  5. YbtOJ#20066-[NOIP2020模拟赛B组Day4]筹备计划【线段树,树状数组】
  6. PHP API接口GETPOST请求封装(通用)
  7. Android开发技术周报 Issue#17
  8. word2vec词向量训练及中文文本类似度计算
  9. [Python] L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT
  10. 格雷码的生成详解(C++)(附格雷码对照表)
  11. 关于HyperLink的NavigateUrl属性的链接地址带参数出错的问题【整理】
  12. 接口测试一般怎么测?接口测试的流程和步骤~
  13. sql 语句高级用法常用合集
  14. windows10下whisper的安装使用和CUDA的配置
  15. Ansible主机清单inventory
  16. 超详细!如何在windows安装Hyper-V虚拟机
  17. android n 状态栏分析,Android N状态栏图标白底问题
  18. KUKA KRC4 控制器截图
  19. Java 实现ES批量索引
  20. 谷歌与Oracle:Java版权大战现在牵扯到美国总统奥巴马

热门文章

  1. 在Java中动态传参调用Python脚本
  2. Virtualization基础
  3. Tensorflow官方文档中文版——第一章
  4. 有许多部分没有在cgroup中显示啊,current/high/low/min等等
  5. spring+quartz定时任务配置---MethodInvokingJobDetailFactoryBean
  6. 深入理解C指针之四:指针和数组
  7. 如何 Credit Hold 客户
  8. Socket连接的小知识,和一个疑难杂症
  9. 转载:VMware Workstation 无法连接到虚拟机。
  10. ucos iii学习笔记——为什么选择ucos iii