Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >人工智能|LightGBM模型详解

人工智能|LightGBM模型详解

作者头像
陆勤_数据人网
发布于 2022-12-22 08:06:43
发布于 2022-12-22 08:06:43
2K0
举报

https://www.showmeai.tech/article-detail/195

之前 ShowMeAI 对强大的 boosting 模型工具 XGBoost 做了介绍 『XGBoost模型』详解,本篇我们来学习 GBDT模型 模型的另一个进化版本:LightGBM。

LightGBM 是微软开发的 boosting 集成模型,和 XGBoost 一样是对 GBDT 的优化和高效实现,原理有一些相似之处,但它很多方面比 XGBoost 有着更为优秀的表现。官方给出的这个工具库模型的优势如下:

  • 更快的训练效率
  • 低内存使用
  • 更高的准确率
  • 支持并行化学习
  • 可处理大规模数据
  • 支持直接使用category特征

下图是一组实验数据,在这份实验中,LightGBM 比 XGBoost 快将近 10 倍,内存占用率大约为 XGBoost 的 1/6,准确率也略有提升。

1.LightGBM动机

互联网领域的算法应用,通常背后都有海量的大数据深度学习中一系列神经网络算法,都是以mini-batch的方式喂数据迭代训练的,总训练数据量不受内存限制。

但我们用到的机器学习算法,比如 GBDT(参考ShowMeAI文章 GBDT详解)在每一次迭代的时候,都需要遍历整个训练数据多次。

  • 如果把整个训练数据一次性装进内存,会明显限制训练数据的大小。
  • 如果不装进内存,反复地读写训练数据又会消耗非常大的时间。

面对工业级海量的数据,普通的 GBDT 算法无法满足需求。LightGBM 提出的主要原因之一,就是为了解决上述大数据量级下的 GBDT 训练问题,以便工业实践中能支撑大数据量并保证效率。

2.XGBoost优缺点

我们之前介绍过强大的 XGBoost(详见 ShowMeAI 文章图解机器学习 | XGBoost模型详解),但 XGBoost 也依旧存在一些缺点,LightGBM 针对其中的一部分进行了调整优化。XGB 优缺点归纳如下:

1)精确贪心算法

轮迭代时,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。

Gain=\frac{1}{2}\left [ \frac{G_{L}^{2}}{H_{L}+\lambda} + \frac{G_{R}^{2}}{H_{R}+\lambda} - \frac{\left(G_{L}+G_{R}\right)^{2}}{H_{L}+H_{R}+\lambda} - \gamma \right ]
  • 优点:可以找到精确的划分条件。
  • 缺点:计算量巨大、内存占用巨大、易产生过拟合。

2)Level-wise生长方式

XGBoost 采用 Level-wise 的增长策略:基于层进行生长,直到达到停止条件。这种增长策略方便并行计算每一层的分裂节点,提高了训练速度,但同时也因为节点增益过小增加了很多不必要的分裂,增加了计算量。

  • 优点:可以使用多线程、可以加速精确贪心算法。
  • 缺点:效率低下,可能产生不必要的叶结点。

3)对cache优化不友好

在预排序后,特征对梯度的访问是一种随机访问,并且不同的特征访问的顺序不一样,无法对 cache 进行优化。同时,在每一层长树的时候,需要随机访问一个行索引到叶子索引的数组,并且不同特征访问的顺序也不一样,也会造成较大的 cache miss。

3.LightGBM优化点

上个部分其实也是 LightGBM 作者们,构建新算法时着重优化的点。概括来说,LightGBM 主要有以下特点:

  • 基于 Histogram 的决策树算法
  • 带深度限制的 Leaf-wise 的叶子生长策略
  • 直方图做差加速
  • 直接支持类别特征(Categorical Feature)
  • Cache 命中率优化
  • 基于直方图的稀疏特征优化
  • 多线程优化

4.决策树算法

1)XGBoost:Pre-sorted算法

XGBoost 使用的是 Pre-sorted 算法,能够更精确的找到数据分隔点。

  • 首先,对所有特征按数值进行预排序。
  • 其次,在每次的样本分割时,用 O(#data) 的代价找到每个特征的最优分割点。
  • 最后,找到最后的特征以及分割点,将数据分裂成左右两个子节点。

这种 pre-sorting 算法能够准确找到分裂点,但是在空间和时间上有很大的开销。

  • 由于需要对特征进行预排序并且需要保存排序后的索引值(为了后续快速的计算分裂点),因此内存需要训练数据的两倍。
  • 在遍历每一个分割点的时候,都需要进行分裂增益的计算,消耗的代价大。

2)LightGBM:直方图算法

LightGBM 使用的是直方图算法(histogram algorithm),占用的内存更低,数据分割的复杂度更低。直方图算法思想是:

  • 将连续的浮点特征离散成 k 个离散值,并构造宽度为 k 的 Histogram。
  • 遍历训练数据,统计每个离散值在直方图中的累计统计量。
  • 在进行特征选择时,只需要根据直方图的离散值,遍历寻找最优的分割点。

(1)内存优化

直方图算法可以很大程度降低内存消耗,它不仅不需要额外存储预排序的结果,还可以只保存特征离散化后的值(一般用8位整型存储就足够了)。

如图所示,用8位整型存储,内存消耗可以降低为原来的1/8。

(2)计算量优化

应用直方图算法,计算代价也大幅降低,预排序算法每遍历一个特征值就需要计算一次分裂的增益,而直方图算法只需要计算 k 次(k可以认为是常数),时间复杂度从 O(#data*#feature) 直接优化到 O(k#*features)。

(3)注意点

直方图算法的理解和注意点如下:

  • 使用分桶 bin 替代原始数据相当于增加了正则化。
  • 使用分桶 bin 意味着很多数据的细节特征丢失,相似的数据如果划分到相同的桶中,数据之间的差异就无法捕获了。
  • 分桶 bin 数量决定了正则化的程度, bin 越少惩罚越严重,欠拟合风险越高。
  • 因为预先设定了 bin 的范围,构建直方图时不需要对数据进行排序。
  • 直方图保存『划分阈值』、『当前bin内样本数』、『当前bin内所有样本的一阶梯度和』。
  • 阈值的选取是按照直方图从小到大遍历,使用了上面的一阶梯度和,目的是得到划分之后△loss最大的特征及阈值。

(4)直方图算法优缺点

  • Histogram算法并不是完美的。由于特征被离散化后,找到的并不是很精确的分割点,所以会对结果产生影响。但在实际的数据集上表明,离散化的分裂点对最终的精度影响并不大,甚至会好一些。原因在于decision tree本身就是一个弱学习器,采用Histogram算法会起到正则化的效果,有效地防止模型的过拟合。
  • 时间上的开销由原来的O(#data*#features)降到O(k*#features)。由于离散化,#bin远小于#data,因此时间上有很大的提升。

Histogram 算法还可以进一步加速。一个叶子节点的 Histogram 可以直接由父节点的 Histogram 和兄弟节点的 Histogram 做差得到。一般情况下,构造 Histogram 需要遍历该叶子上的所有数据,通过该方法,只需要遍历 Histogram 的 k 个捅。速度提升了一倍。

5.决策树生长策略

1)树生长策略调整

直方图算法之上,LightGBM 进行进一步的优化。它没有使用大多数GBDT工具使用的按层生长(Level-wise)的决策树生长策略,而使用了带有深度限制的按叶子生长(Leaf-wise)算法。

\left(p_{m}, f_{m}, v_{m}\right)=\arg \min _{(p, f, v)} L\left(T_{m-1}(X) . \operatorname{split}(p, f, v), Y\right)
T_{m}(X)=T_{m-1}(X) . \operatorname{split}\left(p_{m}, f_{m}, v_{m}\right)

2)XGBoost:Level-wise

XGBoost采用的是Level-wise(按层生长)策略生长的,能够同时分裂同一层的叶子,从而进行多线程优化,不容易过拟合。

但不加区分的对待同一层的叶子,带来了很多没必要的开销。因为实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。

3)LightGBM:Leaf-wise

LightGBM采用Leaf-wise(按叶子生长)生长策略,每次从当前所有叶子中找到分裂增益最大(一般也是数据量最大)的一个叶子,然后分裂,如此循环。

同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。Leaf-wise的缺点是可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合。

6.直方图差加速

LightGBM 另一个优化是 Histogram(直方图)做差加速。整个构建过程中可以观察到:一个叶子的直方图可以由它的父亲节点的直方图与它兄弟的直方图做差得到。

一般来说构造直方图,需要遍历该叶子上的所有数据,但直方图做差仅需遍历直方图的 k 个桶。利用上述特征,LightGBM 可以在构造一个叶子的直方图后,可以用非常微小的代价得到它兄弟叶子的直方图,在速度上可以提升一倍。

7.类别型特征支持

大多数机器学习工具都无法直接支持类别型特征,我们会先将其编码再做后续建模,如果使用 one-hot 这种编码方式还会降低空间和时间效率。

LightGBM优化了对类别型特征的支持,可以直接输入类别特征,不需要额外的编码或 one-hot 0/1 展开。并在决策树算法上增加了类别型特征的决策规则。

1)树模型与one-hot编码

one-hot 编码是处理类别特征的一个通用方法,然而在树模型中,这可能并不一定是一个好的方法,尤其当类别特征中类别个数很多的情况下,主要的问题是:

问题1:可能无法在这个类别特征上进行切分

使用one-hot编码的话,意味着在每一个决策节点上只能使用one vs rest(例如是不是男性,是不是一线城市等)的切分方式。当类别值很多时,每个类别上的数据可能会比较少,这时候切分会产生不平衡,这意味着切分增益也会很小。

问题2:影响决策树的学习

就算可以在这个类别特征进行切分,也会把数据切分到很多零碎的小空间上,如下左图所示。而决策树学习时利用的是统计信息,在这些数据量小的空间上,统计信息不准确,学习会变差。但如果使用下右图的分裂方式,数据会被切分到两个比较大的空间,进一步的学习也会更好。

圈中的数值表示该结点内的数据。右图中叶子节点 X=A || X=C 的含义是 X=A 或者 X=C 放到左孩子,其余放到右孩子。

2)LightGBM类别型特征处理方式

LightGBM 采用了 Many vs Many 的切分方式解决 one-hot 编码带来的问题,实现了类别特征的最优切分。用LightGBM可以直接输入类别特征,并产生上右图的效果。在 1 个

k

维的类别特征中寻找最优切分,朴素的枚举算法的复杂度是

O(2^k)

,而 LightGBM 采用了如 On Grouping For Maximum Homogeneity 的方法实现了

O(k\log k)

的算法。

算法流程如图所示:

  • ①在枚举分割点之前,先把直方图按每个类别的均值进行排序。
  • ②接着按照均值的结果依次枚举最优分割点。

从下图可以看到,Sum(y)/Count(y)为类别的均值。当然,这个方法很容易过拟合,所以在 LightGBM中 加入了很多对这个方法的约束和正则化。

求解类别型特征的最优切分的具体流程如下:

① 离散特征建立直方图的过程

统计该特征下每一种离散值出现的次数,并从高到低排序,并过滤掉出现次数较少的特征值。然后为每一个特征值,建立一个 bin 容器,对于在bin容器内出现次数较少的特征值直接过滤掉,不建立 bin 容器。

② 计算分裂阈值的过程

  • 先看该特征下划分出的 bin 容器的个数,如果 bin 容器的数量小于4,直接使用 one vs other 方式,逐个扫描每一个 bin 容器,找出最佳分裂点。
  • 对于 bin 容器较多的情况,先进行过滤,只让子集合较大的 bin 容器参加划分阈值计算,对每一个符合条件的bin容器进行公式计算,得到一个值,根据该值对 bin 容器从小到大进行排序,然后分从左到右、从右到左进行搜索,得到最优分裂阈值。公式如下:
\frac{该bin容器下所有样本的一阶梯度之和}{该bin容器下所有样本的二阶梯度之和} + 正则项(参数 {cat \text{-} smooth})

这里为什么不是 label 的均值呢?其实上例中只是为了便于理解,只针对了学习一棵树且是回归问题的情况。这时候一阶导数是

Y

,二阶导数是

1

),

  • 没有搜索所有的 bin 容器,而是设定了一个搜索 bin 容器数量的上限值,程序中设定是
32

,即参数 max_num_cat

  • LightGBM 中对离散特征实行的是 many vs many 策略,这32个 bin 中最优划分的阈值的左边或者右边所有的 bin 容器就是一个 many集合,而其他的 bin 容器就是另一个 many 集合。

③ 对于连续特征,划分阈值只有一个。对于离散值可能会有多个划分阈值,每一个划分阈值对应着一个bin容器编号

当使用离散特征进行分裂时,只要数据样本对应的 bin 容器编号在这些阈值对应的 bin 集合之中,这条数据就加入分裂后的左子树,否则加入分裂后的右子树。

8.并行支持与优化

LightGBM 原生支持并行学习,目前支持『特征并行』和『数据并行』的两种,LightGBM 针对这两种并行方法都做了优化。

  • 特征并行:在不同机器在不同的特征集合上分别寻找最优的分割点,然后在机器间同步最优的分割点。
  • 数据并行:让不同的机器先在本地构造直方图,然后进行全局的合并,最后在合并的直方图上面寻找最优分割点。

1)特征并行

LightGBM 在特征并行算法中,通过在本地保存全部数据避免对数据切分结果的通信。

2)数据并行

Lightgbm 在数据并行中使用分散规约(Reduce scatter)把直方图合并的任务分摊到不同的机器,降低通信和计算,并利用直方图做差,进一步减少了一半的通信量。

基于投票的数据并行则进一步优化数据并行中的通信代价,使通信代价变成常数级别。在数据量很大的时候,使用投票并行可以得到非常好的加速效果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学与人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
图解机器学习 | LightGBM模型详解
教程地址:http://www.showmeai.tech/tutorials/34
ShowMeAI
2022/03/10
2.5K0
图解机器学习 | LightGBM模型详解
机器学习|LightGBM
上文中我们了解了一下XGBoost的原理,本文再来了解一下GBDT的另一个进化算法LightGBM,从原理上来说它和GBDT及XGBoost类似,都采用损失函数的负梯度作为当前决策树的残差近似值,去拟合新的决策树。
数据山谷
2020/07/21
8230
机器学习|LightGBM
LightGBM原理与实现
不久前微软DMTK(分布式机器学习工具包)团队在GitHub上开源了性能超越其他boosting工具的LightGBM,在三天之内GitHub上被star了1000次,fork了200次。知乎上有近千人关注“如何看待微软开源的LightGBM?”问题,被评价为“速度惊人”,“非常有启发”,“支持分布式”,“代码清晰易懂”,“占用内存小”等。
大数据技术与机器学习
2019/11/20
1.5K0
​100天搞定机器学习|Day63 彻底掌握 LightGBM
LightGBM 全称为轻量的梯度提升机(Light Gradient Boosting Machine),由微软于2017年开源出来的一款SOTA Boosting算法框架。
统计学家
2021/11/16
1.3K0
【白话机器学习】算法理论+实战之LightGBM算法
如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法:
石晓文
2020/06/28
7K0
LightGBM算法总结
1 LightGBM原理 1.1 GBDT和 LightGBM对比 1.2 LightGBM 的动机 1.3 Xgboost 原理 1.4 LightGBM 优化 1.4.1 Histogram 算法 1.4.2 带深度限制的 Leaf-wise 的叶子生长策略    1.4.3 直方图加速 1.4.4 直接支持类别特征 1.4.5 LightGBM并行优化 1.5 其他注意 2 lightGBM代码 2.1 基础代码 2.2 模板代码 2.2.1 二分类 2.2.2 多分类 2.3 lightGBM 和 xgboost 的代码比较 2.3.1 划分训练集测试集 2.3.2 设置参数 2.3.3 模型训练 2.3.4 模型执行时间 2.3.5 模型测试 2.3.6 分类转换 2.3.7 准确率计算 2.3.8 roc_auc_score计算 3 lightGBM调参 3.1 参数 3.1 控制参数 3.2 核心参数 3.3 IO参数 3.2 调参 4 lightGBM案例 4.1 回归案例 4.1.1 代码 4.1.2 运行结果 4.2 [ICC竞赛] 精品旅行服务成单预测 4.2.1 业务需求 4.2.2 数据表格 4.2.3 lightGBM模型 5 lightGBM的坑 5.1 设置提前停止 5.2 自动处理类别特征 5.3 自动处理缺失值
机器学习AI算法工程
2019/10/29
4K0
LightGBM算法总结
集成学习总结
1 基本概念 集成学习的主要思路是先通过一定的规则生成多个学习器,再采用某种集成策略进行组合,最后综合判断输出最终结果。一般而言,通常所说的集成学习中的多个学习器都是同质的"弱学习器"。基于该弱学习器,通过样本集扰动、输入特征扰动、输出表示扰动、算法参数扰动等方式生成多个学习器,进行集成后获得一个精度较好的"强学习器"。 目前集成学习算法大多源于bagging、boosting、stacking三种思想。 2 bagging 一种提高分类模型的方法。 (1) 从训练集\(S\)中有放回的随机选取数据集\(
用户1432189
2019/06/25
6870
集成学习总结
LightGBM介绍及参数调优
  LightGBM是一个梯度Boosting框架,使用基于决策树的学习算法。它可以说是分布式的,高效的,有以下优势:
统计学家
2019/09/03
1.8K0
LightGBM介绍及参数调优
Kaggle神器LightGBM最全解读!
GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT不仅在工业界应用广泛,通常被用于多分类、点击率预测、搜索排序等任务;在各种数据挖掘竞赛中也是致命武器,据统计Kaggle上的比赛有一半以上的冠军方案都是基于GBDT。而LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据等优点。
统计学家
2020/12/08
4.8K0
Kaggle神器LightGBM最全解读!
开源|LightGBM基本原理,以及调用形式
久前微软 DMTK (分布式机器学习工具包)团队在 GitHub 上开源了性能超越其他 boosting 工具的 LightGBM 知乎上有近千人关注“如何看待微软开源的 LightGBM?”问题,被评价为“速度惊人”,“非常有启发”,“支持分布式”,“代码清晰易懂”,“占用内存小”等。 GBDT :   GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合
学到老
2018/06/01
3.8K0
R+工业级GBDT︱微软开源 的LightGBM(R包已经开放)
看完一篇介绍文章后,第一个直觉就是这算法已经配得上工业级属性。日前看到微软已经公开了这一算法,而且已经发开python版本,本人觉得等hadoop+Spark这些平台配齐之后,就可以大规模宣传啦~如果R包一发我一定要第一时间学习并更新在本帖下~ 哈哈
悟乙己
2019/05/28
1.5K0
终于有人把XGBoost 和 LightGBM 讲明白了,项目中最主流的集成算法!
本文是决策树的第三篇,主要介绍基于 Boosting 框架的主流集成算法,包括 XGBoost 和 LightGBM。
Datawhale
2019/11/07
5K1
模型记录
用bootstrap自助法生成m个训练集,对每个训练集构造一颗决策树,在节点找特征进行分裂的时候,并不是对所有特征找到使得指标(如信息增益)最大的,而是在特征中随机抽取一部分特征,在抽取到的特征中找到最优解,进行分裂。模型预测阶段就是bagging策略,分类投票,回归取均值。
DuncanZhou
2018/09/04
5120
面试、笔试题集:集成学习,树模型,Random Forests,GBDT,XGBoost
分类和回归树(简称 CART)是 Leo Breiman 引入的术语,指用来解决分类或回归预测建模问题的决策树算法。它常使用 scikit 生成并实现决策树: sklearn.tree.DecisionTreeClassifier 和 sklearn.tree.DecisionTreeRegressor 分别构建分类和回归树。
流川疯
2022/05/10
9850
面试、笔试题集:集成学习,树模型,Random Forests,GBDT,XGBoost
LightGBM——提升机器算法(图解+理论+安装方法+python代码)
LightGBM是个快速的,分布式的,高性能的基于决策树算法的梯度提升框架。可用于排序,分类,回归以及很多其他的机器学习任务中。
润森
2022/09/22
2.7K0
LightGBM——提升机器算法(图解+理论+安装方法+python代码)
AI面试扩展之LightGBM = GOSS + histogram + EFB
之前一直在用LightGBM模型,但是它的原理并不是非常的了解,与之前讲过的XGB的区别也不甚清楚,所以今日一鼓作气,好好整明白这个运行的原理。总的来说,XGB和LGB都是GBDT的优化。
机器学习炼丹术
2020/07/14
2.7K0
AI面试扩展之LightGBM = GOSS + histogram + EFB
视频+案例,玩转LightGBM
LightGBM在Higgs数据集上LightGBM比XGBoost快将近10倍,内存占用率大约为XGBoost的1/6,并且准确率也有提升。 Xgboost已经十分完美了,为什么还要追求速度更快、内存使用更小的模型? 对GBDT算法进行改进和提升的技术细节是什么? 一、提出LightGBM的动机 常用的机器学习算法,例如神经网络等算法,都可以以mini-batch的方式训练,训练数据的大小不会受到内存限制。 而GBDT在每一次迭代的时候,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。尤其面对工业级海量的数据,普通的GBDT算法是不能满足其需求的。 LightGBM提出的主要原因就是为了解决GBDT在海量数据遇到的问题,让GBDT可以更好更快地用于工业实践。
机器学习AI算法工程
2019/10/28
9030
XGBoost和LightGBM
这两个模型都属于集成学习中的树模型,每个机器学习模型都有它特定的应用场景,不同的数据集适合用到的模型是不一样的。
算法之名
2021/10/09
1.3K0
XGBoost和LightGBM
机器学习8:集成学习--LightGBM
LightGBM相关知识模块:Histogram VS pre-sorted,leaf-wiseVS level-wise,特征并行和数据并行,顺序访问梯度,支持类别特征, CatBoost(了解)。
用户5473628
2019/08/08
1.7K0
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的各种优点,以及该项目的开源地址。
机器学习AI算法工程
2019/10/28
1.7K0
相关推荐
图解机器学习 | LightGBM模型详解
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文