lightGBM简介

xgboost的出现,让数据民工们告别了传统的机器学习算法:RF、GBM、SVM ……..  现在微软推出了一个新的boosting框架,想要挑战xgboost的江湖地位。

顾名思义,lightGBM包含两个关键点:light即轻量级,GBM 梯度提升机

LightGBM 是一个梯度 boosting 框架,使用基于学习算法的决策树。

lightGBM特点

概括来说,lightGBM主要有以下特点:

  • 基于Histogram的决策树算法

  • 带深度限制的Leaf-wise的叶子生长策略

  • 直方图做差加速

  • 直接支持类别特征(Categorical Feature)

  • Cache命中率优化

  • 基于直方图的稀疏特征优化

  • 多线程优化

前2个特点使我们尤为关注的。

Histogram算法

直方图算法的基本思想:先把连续的浮点特征值离散化成k个整数,同时构造一个宽度为k的直方图。遍历数据时,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。

带深度限制的Leaf-wise的叶子生长策略

Level-wise一次数据可以同时分裂同一层的叶子,容易进行多线程优化,也好控制模型复杂度,不容易过拟合。但实际上Level-wise是一种低效算法,因为它不加区分的对待同一层的叶子,带来了很多没必要的开销,因为实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。

Leaf-wise则是一种更为高效的策略:每次从当前所有叶子中,找到分裂增益最大的一个叶子,然后分裂,如此循环。因此同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。

Leaf-wise的缺点:可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度限制,在保证高效率的同时防止过拟合。

lightGBM主要参数说明

(1)num_leaves   LightGBM使用的是 leaf-wise 的算法,因此在调节树的复杂程度时,使用的是  num_leaves  而不是 max_depth。大致换算关系:num_leaves = 2^(max_depth)

(2)样本分布非平衡数据集:可以  param[‘is_unbalance’]=’true’

(3)Bagging参数:bagging_fraction+bagging_freq(必须同时设置)、feature_fraction

(4)min_data_in_leaf、min_sum_hessian_in_leaf

参数使用例子

// 01. train set and test set
train_data = lgb.Dataset(dtrain[predictors],label=dtrain[target],feature_name=list(dtrain[predictors].columns), categorical_feature=dummies)test_data = lgb.Dataset(dtest[predictors],label=dtest[target],feature_name=list(dtest[predictors].columns), categorical_feature=dummies)// 02. parameters
param = {'max_depth':6,'num_leaves':64,'learning_rate':0.03,'scale_pos_weight':1,'num_threads':40,'objective':'binary','bagging_fraction':0.7,'bagging_freq':1,'min_sum_hessian_in_leaf':100
}param['is_unbalance']='true'
param['metric'] = 'auc'// 03. cv and train
bst=lgb.cv(param,train_data, num_boost_round=1000, nfold=3, early_stopping_rounds=30)estimators = lgb.train(param,train_data,num_boost_round=len(bst['auc-mean']))// 04. test predict
ypred = estimators.predict(dtest[predictors])

lightGBM简述相关推荐

  1. 【第十一届泰迪杯B题产品订单的数据分析与需求预测产品订单的数据分析与需求预测 】第二大问代码分享+解题思路(EDA数据再探索+LightGBM模型)

    [第十一届泰迪杯B题产品订单的数据分析与需求预测]第二大问代码分享+解题思路(EDA数据再探索+LightGBM模型) 写在前面: ​ 拖了这么长时间,一方面是我在找实习面试准备.另一方面是在做第二问 ...

  2. LightGBM学习分享

    LightGBM学习分享 1基本概念 1.1背景: GBDT一经提出,就得到了广泛的关注,其演变的算法很多,尤其是Xgboost更是被认为泛化能力最好的算法,其在各种问题中都表现出了优异的性能,但是在 ...

  3. 多分类 数据不平衡的处理 lightgbm

    前言 数据不平衡问题在机器学习分类问题中很常见,尤其是涉及到"异常检测"类型的分类.因为异常一般指的相对不常见的现象,因此发生的机率必然要小很多.因此正常类的样本量会远远高于异常类 ...

  4. lightgbm 决策树 可视化 graphviz

    决策树模型,XGBoost,LightGBM和CatBoost模型可视化 安装 graphviz 参考文档 http://graphviz.readthedocs.io/en/stable/manua ...

  5. lightgbm保存模型参数

    20210205 params = {'task': 'train', # 执行的任务类型'boosting_type': 'gbrt', # 基学习器'objective': 'lambdarank ...

  6. xgboost lightgbm catboost 多分类 多标签

    xgboost 与 lightgbm 官方均支持多分类任务,但不直接支持多标签分类任务,实现多标签任务的方法之一是结合sklearn 提供的 multiclass 子类,如OneVsRestClass ...

  7. 梯度提升决策树(GBDT)与XGBoost、LightGBM

    20211224 [机器学习算法总结]XGBoost_yyy430的博客-CSDN博客_xgboost xgboost参数 默认:auto.XGBoost中使用的树构造算法.可选项:auto,exac ...

  8. 简述计算机科学的核心内容,北京大学-计算机科学与技术(2018秋)作业及复习

    59.(第十章)外排序是指在排序前后,数据在外存上,排序时数据调入内存进行的排序方法. 60.(第十章)在选择排序.冒泡排序.归并排序中, 归并排序是空间复杂度最大的. 三.简答和程序题(共10题,每 ...

  9. 设计模式学习1:设计模式简述和设计模式原则

    设计模式简述 什么是设计模式? 软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案. 设计模式的目的: 代码高可用(相同作用的代码能重复 ...

最新文章

  1. python算法书籍-有哪些用 Python 语言讲算法和数据结构的书?
  2. /usr/lib/ocf/resource.d/pacemaker/ping: line 296
  3. Android_神奇的android:clipChildren属性
  4. linux根文件系统创建过程
  5. mac安装vue-cli脚手架;脚手架安装报错Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules
  6. api 微信内置浏览器js_微信小程序和HTML的区别
  7. 解决Office 365应用程序无法正常启动(0X0000142)
  8. 在同时使用animation和translate时,translate无效
  9. google Inception v1 - v4 papers 发展历程
  10. mac电脑上如何看java jdk文档
  11. c语言烟花表白程序代码,C语言实战之浪漫烟花表白程序代码
  12. 一个IT农民工分享互联网巨头公司面试流程
  13. MOF-74(Zn), CAS:1033723-90-8
  14. raid缓存策略设置
  15. 蝙蝠侠最新截图----光影的典型例证
  16. VS code 设置 代码缩进参考线
  17. hdu 1789 贪心算法
  18. PTA - 数据库合集19
  19. Java浅析电信数据采集
  20. python、Linux、MySQL学习笔记

热门文章

  1. 1.学生党如何查找文献书籍
  2. 商鞅(约公元前395年-公元前338年)
  3. linux网络协议栈ip_rcv
  4. 殷书数据结构5.8——堆
  5. 数据挖掘项目——Airbnb 新用户的民宿预定结果预测
  6. Airbnb产品运营分析报告
  7. vscode报错Failed to save ***,The content of the file is newer.
  8. 微信浏览器调起微信登录
  9. 华为云服务器购买以及使用教程
  10. win10 excel和ppt变成英文了,word正常,怎么解决?