经典算法 | XGBoost、LightGBM、CatBoost比较

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

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增长。每次从当前所有叶子中找到分裂增益最大的一个叶子(通常来说是数据最多的一个),其缺陷是容易生长出比较深的决策

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值