LightGBM——提升机器算法(图解+理论+安装方法+python代码)

前言

LightGBM是个快速的,分布式的,高性能的基于决策树算法的梯度提升框架。可用于排序,分类,回归以及很多其他的机器学习任务中。

在竞赛题中,我们知道XGBoost算法非常热门,它是一种优秀的拉动框架,但是在使用过程中,其训练耗时很长,内存占用比较大。在2017年年1月微软在GitHub的上开源了一个新的升压工具--LightGBM。在不降低准确率的前提下,速度提升了10倍左右,占用内存下降了3倍左右。因为他是基于决策树算法的,它采用最优的叶明智策略分裂叶子节点,然而其它的提升算法分裂树一般采用的是深度方向或者水平明智而不是叶,明智的。因此,在LightGBM算法中,当增长到相同的叶子节点,叶明智算法比水平-wise算法减少更多的损失。因此导致更高的精度,而其他的任何已存在的提升算法都不能够达。与此同时,它的速度也让人感到震惊,这就是该算法名字   的原因。

  • 2014年3月,XGBOOST最早作为研究项目,由陈天奇提出

     (XGBOOST的部分在我的另一篇博客里:https://blog.csdn.net/huacha__/article/details/81029680

  • 2017年1月,微软发布首个稳定版LightGBM

在微软亚洲研究院AI头条分享中的「LightGBM简介」中,机器学习组的主管研究员王太峰提到:微软DMTK团队在github上开源了性能超越其它推动决策树工具LightGBM后,三天之内星了1000+次,叉了超过200次。知乎上有近千人关注“如何看待微软开源的LightGBM?”问题,被评价为“速度惊人”,“非常有启发”,“支持分布式” “代码清晰易懂”,“占用内存小”等。以下是微软官方提到的LightGBM的各种优点,以及该项目的开源地址。

科普链接:如何玩转LightGBM https://v.qq.com/x/page/k0362z6lqix.html

目录

前言

一、"What We Do in LightGBM?"

二、在不同数据集上的对比

三、LightGBM的细节技术

1、直方图优化

2、存储记忆优化

3、深度限制的节点展开方法

4、直方图做差优化

5、顺序访问梯度

6、支持类别特征

7、支持并行学习

四、MacOS安装LightGBM

五、用python实现LightGBM算法


一、"What We Do in LightGBM?"

下面这个表格给出了XGBoost和LightGBM之间更加细致的性能对比,包括了树的生长方式,LightGBM是直接去选择获得最大收益的结点来展开,而XGBoost是通过按层增长的方式来做,这样呢LightGBM能够在更小的计算代价上建立我们需要的决策树。当然在这样的算法中我们也需要控制树的深度和每个叶子结点的最小数据量,从而减少过拟合。

小小翻译一下,有问题还望指出

  XGBoost LightGBM
树木生长算法

按层生长的方式

有利于工程优化,但对学习模型效率不高

直接选择最大收益的节点来展开,在更小的计算代价上去选择我们需要的决策树

控制树的深度和每个叶子节点的数据量,能减少过拟合

划分点搜索算 法 对特征预排序的方法 直方图算法:将特征值分成许多小筒,进而在筒上搜索分裂点,减少了计算代价和存储代价,得到更好的性能。另外数据结构的变化使得在细节处的变化理上效率会不同
内存开销 8个字节 1个字节
划分的计算增益 数据特征 容器特征
  • 71
    点赞
  • 706
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值