LightGBM
LightGBM(Light Gradient Boosting Machine)是一款基于决策树算法的分布式梯度提升框架。为了满足工业界缩短模型计算时间的需求,LightGBM的设计思路主要是两点:
- 减小数据对内存的使用,保证单个机器在不牺牲速度的情况下,尽可能地用上更多的数据;
- 减小通信的代价,提升多机并行时的效率,实现在计算上的线性加速。由此可见,LightGBM的设计初衷就是提供一个快速高效、低内存占用、高准确度、支持并行和大规模数据处理的数据科学工具。
LightGBM是微软旗下的Distributed Machine Learning Toolkit (DMKT)的一个项目,由2014年首届阿里巴巴大数据竞赛获胜者之一柯国霖主持开发。虽然其开源时间才仅仅2个月,但是其快速高效的特点已经在数据科学竞赛中崭露头角。Allstate Claims Severity竞赛中的冠军解决方案里就使用了LightGBM,并对其大嘉赞赏。
特性
- 优化速度与内存使用。
- 稀疏优化。
- 优化准确率。使用leaf-wise生长方式,可以处理分类变量。
- 优化网络通讯。
- 支持三种模式并行。
(1)特征并行:
a. Workers find local best split point {feature, threshold} on the local feature set.
b. Communicate local best splits with each other and get the best one.
c. Perform the best split.
(2)数据并行:
a. Instead of “Merge global histograms from all local histograms”, LightGBM use “Reduce Scatter” to merge histograms of different (non-overlapping) features for different workers. Then workers find the local best split on local merged histograms and sync up the global best split.
b. As aforementioned, LightGBM uses histogram subtraction to speed up training. Based on this, we can communicate histograms only for one leaf, and get its neighbor’s histograms by subtraction as well.
(3)投票并行:
Voting parallel further reduces the communication cost in data-parallel to constant cost. It uses two-stage voting to reduce the communication cost of feature histograms.
常见问题
-
LightGBM和XGBoost有什么区别?他们的loss一样么? 算法层面有什么区别?
答:LightGBM:基于Histogram的决策树算法;Leaf-wise的叶子生长策略;Cache命中率优化;直接支持类别特征(categorical Feature);XGBoost:预排序;Level-wise的层级生长策略;特征对梯度的访问是一种随机访问。 -
LightGBM有哪些实现,各有什么区别?
答:gbdt:梯度提升决策树,串行速度慢,容易过拟合;rf:随机森林,并行速度快;dart:训练较慢;goss:容易过拟合。
网友评论