Lightgbm基本原理

仅供参考:

背景:XGBoost一个瓶颈是针对每个特征,它需要对每一个可能的分裂点扫描全部的样本来进行计算基尼系数,这是非常的耗时的。

Lightgbm的主要特点:

1. Lightfbm使用直方图算法在牺牲一定精度的条件下换取计算速度的提升和内存消耗的降低。使用了如下的两种方法:

  • Gradient-based One-Side Sampling(GOSS)首先根据样本梯度进行排序,选择Top a%的大梯度的样本,再随机选择b%的其他样本,组合起来去评估信息增益,减少了样本的量(间接降低小梯度样本的出现几率);
  • Exclusive Feature  Bundling(EFB):基于图算法,合并了部分特征,减少总特征量;

2. Lightgbm采用<

### LightGBM算法工作机制与基本原理 #### 1. 基本思想 LightGBM是一种基于决策树的梯度提升框架,它利用直方图方法来优化计算效率并减少内存消耗。相比于传统的梯度提升决策树(Gradient Boosting Decision Tree, GBDT),LightGBM通过引入Leaf-wise生长策略替代Level-wise生长方式,在相同精度下显著提高了训练速度[^1]。 #### 2. 核心技术特点 - **Leaf-wise (最佳优先) 生长策略**: Leaf-wise策略允许模型每次从当前所有叶子中找到具有最大分裂增益的一个节点进行分裂,而不是像传统GBDT那样逐层分裂。这种策略可以更早地捕获到重要的特征组合,从而提高模型效果。然而,为了防止过拟合,通常会设置最大深度限制。 - **直方图算法**: LightGBM采用直方图算法将连续型特征离散化为k个整数值(即构建直方图)。在每轮迭代过程中,只需扫描一次数据即可完成统计工作,极大地减少了计算量。具体而言,对于每个特征,程序会先建立一个固定宽度的直方图,再依据该直方图寻找最优分割点[^2]。 - **带权量化直方图**: 针对大规模稀疏数据场景,LightGBM提出了带权量化的方法进一步降低存储需求和运行时间成本。此方法能够在保持较高预测准确性的同时有效处理高维稀疏输入向量[^3]。 #### 3. 切分点选择逻辑 当决定某个节点是否应该被划分时,LightGBM会评估切分前后带来的增益值,并将其与预定义阈值对比。如果增益超过指定标准,则执行切割操作;否则保留原状不变。整个判断流程如下所示: ```cpp // Pseudo-code for split decision in feature_histogram.hpp if (gain >= min_split_gain && num_data_in_left * num_data_in_right > 0){ perform_split(); } else { keep_node_unsplit(); } ``` 上述伪代码片段清晰体现了LightGBM关于何时实施分支的关键准则之一——只有当预期收益足够大且两侧子集均含有样本实例的情况下才会真正施行分区动作。 #### 4. 并行学习支持 除了高效的单机版本外,LightGBM还提供了分布式环境下的多线程并行能力。这使得即使面对TB级海量数据也能快速得到高质量的结果。主要依赖三种类型的并行模式:数据并行、功能并行以及投票并行。 --- ### 总结 综上所述,LightGBM凭借独特的Leaf-wise增长机制、创新性的直方图技术和强大的并行架构设计成为现代机器学习领域不可或缺的一员。无论是解决回归还是分类问题,都能展现出卓越的表现力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值