Xgboost 极端(extream)梯度提升
并行
特征粒度的并行,而不是和随机森林相同,决策树建立的并行。
Exact greedy算法
1、对每个特征都按照特征值进行排序
2、在每个排好序的特征都寻找最优切分点
3、用最优切分点进行切分
缺点:
1、空间消耗大。需要保存数据的特征值,Xgboost采用block结构,存储指向样本的索引,需要消耗两倍的内存。
2、时间开销大。在寻找最优切分点时,要对每个特征都进行排序,还要对每个特征的每个值都进行遍历,并计算增益。
决策树分裂节点公式
为新增叶子节点的复杂度
LightGBM 轻量级 梯度提升机
基于直方图的决策树算法
把连续的浮点特征值离散化为k个整数(分桶的思想,这些桶称为bin.
比如[0,0.1) -> 0, [0.1,0.3)->1。
同时,将特征根据其所在的bin进行梯度累加。这样,遍历一次大数据后,直方图累积了需要的梯度信息,然后可以直接根据直方图,寻找最优的切分点。
如何分桶
- 数值型特征
关键是寻找分割点 - 离散型特征(类别特征)