xgb、lgb、cat是GBDT梯度提升算法的框架实现。
1. xgb特点
- 预排序能精确找到分割点,但是消耗代价大。
- level-wise (按层生长)同时分裂同一层的叶子,好控制模型复杂度,不容易过拟合。有利于多线程优化。
2. lgb
- histogram直方图决策树算法。连续特征离散化,相当于特征分桶 将连续特征离散化为k个整数,同时构造一个宽度为k的直方图,遍历数据时候根据离散化后的值作为索引在直方图中累计统计量,遍历一次后,直方图累计了需要统计的量,然后根据直方图的离散值,寻找最优分割点。存储方便、运算快、鲁棒性强、模型稳定。
- 单边梯度采样算法GOSS。采样方法 丢弃一些对计算样本梯度没有帮助的样本,排除大部分小梯度样本,禁用剩下的样本计算信息增益。减少数据量但是保证了精度。
- 互斥特征孔邦法EFB。降维 高维度数据是稀疏的,用无损的方法减少特征的维度。被孔邦的特征都是互斥的。
- leaf_wise按叶子分裂策略。带有深度限值的按叶子生长策略。 Leaf-wise:(带有深度限值的按叶子生长)每次从当前所有叶子中找到分裂增益最大的一个叶子进行分裂,在分裂次数相同的情况下,可以降低更多的误差,但是可能会长出比较深的决策树,产生过拟合。
- 支持类别特征
- 并行
- cache命中率优化
3. cat
CatBoost是一种基于对称决策树为基学习器实现的参数较少、支持类别型变量和高准确性的GBDT框架。主要解决的问题是高效合理的处理类别型特征。cat由categorical和boosting组成。还解决了梯度偏差以及预测偏移的问题,从而减少过拟合发生。
- 创新点:
- 类别型特征自动处理。
- 组合类别特征,可以利用到特征之间的联系,丰富了特征维度。
- 采用ordered boost方法避免梯度估计偏差,解决了预测偏移问题。
- 采用完全对称决策树作为基模型。
- cat使用对称决策树(oblivious trees)作为基预测器,相同分割准则在树的整个一层上使用,这种树是平衡的,不太容易过拟合。参数较少。---梯度提升对称树
- cat和所有梯度提升算法一样,通过新建树来拟合当前模型梯度。然而,所有经典提升算法都存在有偏的点态梯度估计引起的过拟合问题。在每个步骤中使用的梯度都使用当前模型中的相同的数据点来估计,这导致估计梯度在特征空间的任何域中的分布与该域中梯度的真实分布相比发生了偏移。# 梯度偏移引起了模型过拟合,预测发生偏移。# xgb和lgb构建树分两个阶段:选择树和在树固定后计算叶子节点的值。# cat中第一阶段采用无偏估计,第二阶段采用传统的GBDT方案执行。
- cat将不同类别型特征组合成新的特征,获得高阶依赖。
优点:
1. 性能卓越,鲁棒性强。
2. 实用:类别型、数值型、文本型
缺点:
1. 对类别型特征处理需要大量时间和内存。
2. 受随机种子影响较大。