XGBoost、LightGBM、CatBoost比较
1 概述
在深度学习红极一时的情况下,boosting算法仍然有其用武之地,尤其在训练样本量较少、训练时间较短、缺乏调参先验等情况下,boosting算法仍然保持着其优势。kaggle比赛中boosting算法更是占据了大多数席位。本文总结了多篇文献和博客中对于三种算法的介绍,从多角度对这几种具有代表性的 boosting 算法进行对比,方便加深理解。
2 三种算法的共同点
从结构上来说,XGBoost、LightGBM和CatBoost都是boosting算法,其基学习器都为决策树,同时都是使用贪婪的思想来实现决策树的生长。
实际应用中,这几种以决策树为支持的算法也集成了决策树的良好的可解释性,在Kaggle中一些大型的数据集上,这几种boosting算法都能够取得相当好的performance。
就速度而言,LightGBM和CatBoost在XGBoost上做了进一步的优化改进,速度一般也要快于先前的XGBoost,同时调参环节也方便了很多。
3 三种算法的区别
3.1 树的特征
三种算法基学习器都是决策树,但是树的特征以及生成的过程仍然有很多不同
CatBoost使用对称树,其节点可以是镜像的。CatBoost基于的树模型其实都是完全二叉树。
XGBoost的决策树是Level-wise增长。Level-wise可以同时分裂同一层的叶子,容易进行多线程优化,过拟合风险较小,但是这种分裂方式也有缺陷,Level-wise对待同一层的叶子不加以区分,带来了很多没必要的开销。实际上很多叶子的分裂增益较低,没有搜索和分裂的必要。
LightGBM的决策树是Leaf-wise增长。每次从当前所有叶子中找到分裂增益最大的一个叶子(通常来说是数据最多的一个),其缺陷是容易生长出比较深的决策

本文对比分析了XGBoost、LightGBM和CatBoost三种Boosting算法,详细探讨了它们在决策树生长策略、类别变量处理、算法优化及参数调节方面的异同。这三种算法在Kaggle竞赛中表现优异,各有千秋。

1982

被折叠的 条评论
为什么被折叠?



