从官方文档弄懂Lightgbm(特点)

1 速度和内存使用优化

许多 boost 工具使用基于预排序的算法(例如 xgboost 中的默认算法)进行决策树学习。这是一个简单的解决方案,但不容易优化。

LightGBM 使用基于直方图的算法,将连续的特征(属性)值分门别类。这加快了训练速度,减少了内存的使用。基于直方图的算法的优势包括以下几点:

  • 减少了计算每个分支增益的消耗
    基于预排序的算法具有时间复杂度 O(#data)

    计算直方图的时间复杂度为 O(#data),但这只涉及到快速求和操作。一旦构建了直方图,基于直方图的算法的时间复杂度为 O(#bins),而 #bins 远远小于 #data。

  • 使用直方图减法来进一步提速
    要得到二叉树中一片叶子的直方图,可以使用它的父叶和邻叶的直方图做减法。

    所以它只需要构造一个叶子的直方图(其 #data 比其邻居小),然后它可以用小成本 O(#bins) 通过直方图减法得到其邻居的直方图。

  • 减少内存使用量

    用离散 bins 代替连续值。如果 #bins 很小,可以使用小数据类型,如 uint8_t,来存储训练数据。

    无需为预排序特征值存储额外信息

  • 降低并行学习的通信成本

2 稀疏优化

只需要 O(2 * #非零数据) 来构建稀疏特征的直方图。

3 准确度优化

Leaf-wise (Best-

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值