摘要
梯度增强算法家族最近扩展了几个有趣的提案(即XGBoost, LightGBM和CatBoost),
这些提案同时关注速度和准确性。XGBoost是一种可扩展的集成技术,已被证明
是一种可靠且高效的机器学习挑战解决方案。LightGBM是一个精确的模型,专注
于使用高梯度实例的选择性采样提供极快的训练性能。CatBoost修正了梯度的计
算,避免了预测偏移,从而提高了模型的精度。这项工作提出了一个实际的分析,
从训练速度、泛化性能和超参数设置方面,这些梯度增强的新变体是如何工作的。
此外,对XGBoost、LightGBM、CatBoost、随机森林和梯度增强进行了全面的比
较,并使用了精心调整的模型以及它们的默认设置。对比结果表明,CatBoost在
两组数据集的泛化精度和AUC方面取得了最好的结果,但差异不大。LightGBM
是所有方法中最快的,但不是最准确的。最后,XGBoost在准确性和训练速度方
面都排名第二。最后,使用两种新提出的工具对XGBoost、LightGBM和CatBoost
中超参数调优的影响进行了广泛的分析。
关键词:XGBoost·LightGBM·CatBoost·梯度增强·随机森林·分类器集成
1 介绍
随着机器学习正在成为越来越多应用成功的关键部分,如信用评分(Xia et al.
2017)、生物活性分子预测(Babajide Mustapha and Saeed 2016)、太阳能和风能预
测(Torres-Barrán et al. 2017)、油价预测(Gumus and Kiran 2017)、银河系不明来
源和引力镜类星体分类(Mirabal et al. 2016;Khramtsov et al. 2019)、情绪分析
(Valdivia et al. 2018)、使用电子健康记录数据预测痴呆症(Nori et al. 2019)——找
到能够有效处理复杂数据的模型是至关重要的,而且数据量很大。考虑到这一
观点,集成方法已经成为提高多个现有模型性能的非常有效的工具(Brei-man
2001;弗里德曼2001年;Yoav Freund 1999;Chen and Guestrin 2016)。这些方法主要
依赖于随机化技术,随机化技术包括为手头的问题生成许多不同的解决方案
(Breiman 2001),或者依赖于自适应强调程序(例如增强Yoav Freund 1999年)。
事实上,上述应用的共同点是它们都使用集成方法,特别是它们使用以下
最近的集成方法之一:极端梯度增强或XGBoost (Chen和Guestrin 2016年),光梯
度增强机(LightGBM) (Ke等人2017年)或分类增强(CatBoost) (Prok-horenkova等
人2018年),结果非常有竞争力。这些方法都是基于梯度增强,提出了原始算法
的变体,以提高训练速度和泛化能力。其中一种方法,XGBoost,一直在
Kaggle比赛中名列前茅(Chen和Guestrin 2016年)。CatBoost和LightGBM的性能很
有希望,特别是在前者的泛化精度(Prokhorenkova等人,2018)和后者的训练速
度(Ke等人,2017)。但这些方法并不是唯一在广泛的问题上取得显着结果的方
法。随机森林也被认为是最准确的一种独立于数据集性质的快速学习方法,最
近的各种比较研究都表明了这一点(Fernández-Delgado et al. 2014;Caruana and
Niculescu-Mizil 2006;Rokach 2016)。
本研究遵循先前许多其他比较分析的路径,例如Fernández-Delgado等人
(2014),Caruana和Niculescu-Mizil (2006), Dietterich(2000),旨在弥补与梯度增
强及其最近的变体XGBoost, LightGBM和CatBoost相关的差距。之前的综合分析
都没有包括梯度增强家族的任何机器学习算法,尽管它们具有吸引人的特性。
我们只发现两项比较研究在实验中包括梯度增强(Zhang等人,2017;Brown和
Mues, 2012)。在Brown和Mues(2012)中,对五个失衡信用评分数据集的不同算
法进行了具体分析,结果表明,随机森林和梯度增强在很大范围内的类别失衡
百分比中表现最佳。在该研究中,仅对树的数量进行了梯度增强优化。在最近
的一项广泛的实验比较中(Zhang等人,2017),更接近本研究,在多个数据集上
比较了几种算法。比较的结果显示,梯度增强和随机for-est是最好的分析方法。
虽然分析包括XGBoost库,但它被分析为一个普通的梯度增强算法,而没有考
虑XGBoost的任何特定特性。分析只优化了40个点的有限网格中树的学习率和
深度。在本研究中,我们对XGBoost以及其他梯度增强(LightGMB)变体进行了
广泛的超参数分析
1-3
A comparative analysis of gradient boosting algorithms
和CatBoost),重点介绍了这些方法中对梯度增强提出的具体改进。具体来说,
这些方法的主要改进是:在XGBoost的损失函数中加入复杂度控制项,在
LightGBM中对高梯度实例进行选择性子采样,以及在CatBoost中防止梯度计
算中的预测偏移。
本 研 究 的 具 体 目 标 是 , 首 先 , 比 较 三 种 梯 度 增 强 变 体 (XGBoost,
LightGBM和CatBoost)与其所基于的算法(即梯度增强)的性能。将比较扩展到
随机森林,随机森林可以被认为是一个基准,因为之前的许多比较都证明了
它的卓越性能(Fernández-Delgado et al. 2014;Caruana和Niculescu-Mizil,2006;
Zhang等人,2017)。从准确率、AUC和训练速度三个方面进行比较。我们相
信这种分析对各个领域的研究人员和实践者都有很大的帮助。此外,还对
XGBoost、LightGBM和CatBoost的超参数设置过程进行了全面分析。为此,
我们提出了两种新的方法来分析超参数调优。在第一个建议中,当任何给定
超参数的超参数值改变为任何其他值时,测量使用不同超参数化的方法的平
均秩的变化。超参数调优分析的第二个建议是一个可视化工具,用于分析当
任何给定超参数固定为任何给定值时,即当超参数未调优时,方法的性能对
一组数据集的变化情况。
本文的组织如下:第2节描述了本研究的方法,强调了需要调优的不同超参
数的大小;第3节给出了比较的结果;最后,在第四节对结论进行总结。
2方法
2.1随机森林
最成功的机器学习方法之一是随机森林(Breiman 2001)。随机森林是由决策树
组成的分类器集合,这些决策树是使用两种不同的随机化来源生成的。首先,
每个单独的决策树在一个随机样本上进行训练,替换原始数据,其大小与给
定的训练集相同。生成的bootstrap样本预计有大约≈37%的重复实例。随机森
林中应用的第二个随机化来源是属性抽样。为此,在每个节点分割时,随机
选择输入变量的一个子集来搜索最佳分割。Breiman建议给这个超参数赋值为⌊
log (#features)+1⌋。对于分类,集合的最终预测是通过多数投票给出的。
基于强大数定律,可以证明随机森林的泛化误差随着森林中树木数量的
增加收敛到一个极限(Breiman 2001)。这个论证的含义是,集合的大小并不是
一个真正需要调整的超参数,因为当更多的分类器被包含到集合中时,
random for-est的泛化精度平均不会恶化。森林中树的数量越多,集成越有可
能收敛到它的渐近泛化误差。实际上,随机森林的主要优点之一是它几乎没
有超参数,或者至少,默认的超参数设置平均具有显着的性能(Fernández-
Delgado et al. 2014)。其中最好的两种方法
1-3
C. Bentéjac et al.
比较研究是基于随机森林的,对于随机森林,只有在每次分割时选择的随机属
性的数量的值才会被调优。在比较中排名第五的方法(在179种方法中)是使用
默认设置的随机森林。这也可以被视为一个缺点,因为很难通过超参数调优来
进一步改进随机森林。
无论如何,随机森林中可能被调优的其他超参数是那些控制决策树深度的
参数。一般来说,随机森林中的决策树会一直生长到所有的叶子都是纯的。然
而,这可能会导致非常大的树。对于这种情况,可以通过设置最大深度或在拆
分之前或之后要求每个节点的最小实例数来限制树的生长。
在可以对随机森林进行调优的一组超参数中,我们在本研究中评估了以下
几个:
•在寻找最佳分割(max_features)时要考虑的特征数量。
•分裂内部节点所需的最小样本数(min_samples_split)。这个超参数限制了树
的 大 小 , 但 是 , 在 最 坏 的 情 况 下 , 树 的 深 度 可 以 大 到
N−MIN_SAMPLES_SPLIT,其中N是训练数据的大小。
•创建叶节点所需的最小样本数(min_samples_leaf)。这个限制的效果与之前的
超参数不同,因为它有效地删除了位于父节点中数据分布限制上的分裂候
选。
•树的最大深度(max_depth)。这个超参数限制了树的深度,独立于每个节点中
的实例数量。
2.2梯度提升
增强算法以迭代的方式将弱学习器(即略优于随机的学习器)组合成强学习器
(Yoav Freund 1999)。梯度增强是一种类似于增强的回归算法(Friedman 2001)。
给定一个训练数据集D = {i,yi}N,梯度增强的目标是通过最小化给定损失函数
L(y, F())的期望值,找到函数F*(X)的近似值F(),该函数映射实例Xto它们的输
出值y。梯度增强将F*(X)的加性近似构建为函数的加权和
其中ρm为m的权重thfunction,hm(X)。这些函数是集合的模型(例如决策树)。近
似是迭代地构造的。首先,得到F*(X)的常数近似值为
后续的模型被期望为最小化
1-3
A comparative analysis of gradient boosting algorithms
然而,与直接解决优化问题不同,每个hm都可以看作是F*梯度下降优化中的
贪心步骤。为此,每个模型hm都是在一个新的数据集D = {i,rmi}Ni=1上进行训
练的,其中伪残差rmi由
ρm的值随后通过求解一条线搜索优化问题来计算。
如果迭代过程没有适当地正则化,该算法可能会出现过拟合(Friedman
2001)。对于一些损失函数(例如二次损失),如果模型hm完美地拟合了伪残差,
那么在下一次迭代中,伪残差变为零,过程提前终止。为了控制梯度提升的
加性过程,考虑了几个正则化超参数。正则化梯度提升的自然方法是应用收
缩来减少每个梯度体面的步长Fm(X)=Fm−1()+νρmhm(X),其中∑=(0,1.0)。νis的
值通常设置为0.1。此外,可以通过限制训练模型的复杂性来实现进一步的正
则化。对于决策树的情况,我们可以限制树的深度或分割节点所需的最小实
例数。与随机森林相反,梯度增强中这些超参数的默认值被设置为严格限制
树的表达能力(例如深度通常被限制为≈3−5)。最后,另一组超参数也包含在
不同版本的梯度增强中,这些超参数随机化基础学习器,这可以进一步提高
集成的泛化(Friedman 2002),例如没有的随机子抽样
更换。
梯度增强最终测试的属性是:
•学习率(learning_rate)或收缩率。
•树的最大深度(max_depth):与随机森林中生成的树的含义相同。
•随机样本大小的子采样率(subsample)。与随机森林相反,这通常是在没有
替换的情况下进行的(Friedman 2002)。
•寻找最佳分割(max_features)时要考虑的特征数量:与随机森林一样。
•分裂内部节点(min_samples_ split)所需的最小样本数:与随机森林中一样。
2.3XGBoost
XGBoost (Chen and Guestrin 2016)是一个基于梯度增强的决策树集成,具有高
度可扩展性。与梯度增强类似,XGBoost通过最小化损失函数来构建目标函数
的加性扩展。考虑到XGBoost只关注决策树作为基本分类器,因此使用损失函
数的变体来控制树的复杂性
1-3
C. Bentéjac et al.
其中T是树的叶子数,w是叶子的输出分数。这个损失函数可以集成到决策树的分
裂标准中,从而导致预修剪策略。在更简单的树中,γresult的值越高。γcontrols的
值拆分内部节点所需的最小损失减少增益。XGBoost中的另一个正则化超参数是
收缩,它减少了加法扩展中的步长。最后,还可以使用其他策略来限制树的复杂
性——如树的深度等。降低树复杂度的第二个好处是,模型的训练速度更快,需
要的存储空间更少。随机化技术也在XGBoost中实现,以减少过拟合和提高训练
速度。XGBoost中包含的随机化技术是:用于训练单个树的随机子样本,以及树和
树节点级别的列子采样。此外,通过定义一个输出梯度和hessian(二阶梯度)的函数
并将其传递给“objective”超参数,XGBoost可以扩展到任何用户定义的损失函数。
此外,XGBoost提出了一种稀疏感知算法来寻找最佳分割。属性的稀疏性可
能是由存在许多零值条目和/或缺失值引起的。XGBoost会自动从拆分候选的增益
计算中删除这些条目。此外,XGBoost树学习默认的子节点,其中包含丢失或空
值的实例的分支。XGBoost的其他有趣特性包括单调性和特性交互约束。当领域
特定信息已知时,这些特性可能特别有用。单调约束迫使回归的XGBoost输出相
对于任何给定的输入属性集是单调的(增加或减少)。特征交互约束限制了从根到
任何叶节点的路径中可以组合的输入属性。这两个约束都是通过限制在每个节点
上要考虑的候选分割集来实现的。
此外,XGBoost实现了几种方法来提高与集成精度没有直接关系的决策树的
训练速度。具体来说,XGBoost专注于降低寻找最佳分割的计算复杂度,这是决
策树构建算法中最耗时的部分。分割查找算法通常会枚举所有可能的候选分割,
并选择增益最高的那个。这需要对每个排序属性执行线性扫描,以找到每个节点
的最佳分割。为了避免在每个节点中重复排序数据,XGBoost使用一种特定的基
于压缩列的结构,在该结构中存储预先排序的数据。这样,每个属性只需要排序
一次。这种基于列的存储结构允许为每个考虑的属性并行地找到最佳分割。此外,
XGBoost没有扫描所有可能的候选分割,而是实现了一种基于数据百分位数的方
法,其中只测试候选分割的一个子集,并使用聚合统计数据计算其增益。这个想
法类似于CART树中已经存在的节点级数据子采样(Breiman et al. 1984)。
在本研究中,为XGBoost调优了以下超参数:
•学习率(learning_rate)或缩水率。
•最小损失减少(gamma):这个值越高,树越浅。
•树的最大深度(max_depth)
•要在每次拆分(colsample_bylevel)时评估的特征的比例。
•子采样率(subsample):采样是在没有替换的情况下完成的。
1-3
A comparative analysis of gradient boosting algorithms
2.4LightGBM
LightGBM (Ke等人,2017)是一个实现梯度增强的扩展库,并提出了一些变
体。该库中梯度增强的实现特别侧重于创建一个计算效率高的算法,该算
法基于特征直方图的预计算,与XGBoost一样。该库还包括数十个学习超
参数,允许该模型在各种场景下工作:该实现在GPU和CPU中都可以工作,
它可以作为基本的梯度增强,并且具有多种类型的随机化(列随机化,
bootstrap子采样等)。
LightGBM实现还提出了新的特性(Ke等人,2017),主要是:基于梯度的
单边采样(GOSS)和独家特征捆绑(EFB)。GOSS是一种子样本技术,用于创
建用于构建集成中的基本树的训练集。与AdaBoost一样,该技术旨在增加
那些在分类中具有较高不确定性的实例的重要性,这些实例被识别为具有
较高梯度的实例。当设置GOSS选项时,基本学习者的训练集由梯度最大的
实例的顶部分数(a)加上从梯度最小的实例中检索的随机样本分数(b)组成。
为了补偿原始分布的变化,在计算信息增益时,将低梯度组中的实例加权
(1−a)∕b。EFB技术将稀疏特征捆绑成单个特征。当这些特征不同时具有非
零值时,这可以在不丢失任何信息的情况下完成。GOSS和EFB都提供了进
一步的训练速度增益。EFB可以看作是一种特征预处理技术,在本研究中
不进行分析,因为它是一种可以预应用于任何数据集的技术。此外,对于
这个库,我们将重点分析LightGBM与GOSS,因为标准梯度增强的实现已
经在上面的梯度增强中涵盖了。
以下超参数在本研究中针对LightGBM GOSS模式进行了调优(即超参数
boosting_type设置为' GOSS '):
•学习率(learning_rate)。
•树的最大叶子数。在LightGBM中,控制树的复杂性的首选方法是设置叶
子的最大数量。这种方法为树可以采用的形状提供了更大的灵活性(num_
leaves)。
•从具有最高梯度的实例中选择的实例a的比例(top_rate)。
•从具有最低梯度的实例中抽样的实例b的比例(other_rate)。
•每次分割时要评估的特征的比例(feature_fraction_byn-ode)。
2.5CatBoost
CatBoost (Prokhorenkova et al. 2018)是一个梯度增强库,旨在减少训练过程
中发生的预测偏移。这种分布偏移是F()|xi为训练实例的偏离,相对于F()|测
试实例的偏离。发生这种转移是因为在训练过程中,梯度提升使用相同的
实例
1-3
C. Bentéjac et al.
估计梯度和最小化这些梯度的模型。在CatBoost (Prokhorenkova等人,2018)中
提出的解决方案是使用一系列不包括该实例的训练集中的基本模型来估计梯度。
为此,CatBoost首先在训练实例中引入随机排列。CatBoost的思想(不是它的实
现)是在每次M次提升迭代中构建i = 1,...,N个基本模型。第m次迭代的第i个
模型在排列的前i个实例上进行训练,并用于估计第(m + 1)次提升迭代的第i + 1
个实例的梯度。为了独立于初始随机排列,使用s个不同的随机排列重复这个过
程。尽管如此,对CatBoost的实现进行了优化,使得每次迭代构建一个模型来
处理所有的排列和模型。基本模型是对称树(或决策表)。这些树是通过使用相同
的分裂条件逐级扩展所有叶节点来生长的。CatBoost的另一个重要特性是它如
何处理分类特性。在CatBoost中,分类特性被一个数字特性所取代,该数字特
性测量每个类别的预期目标值。为了避免对训练数据的过度拟合,理想情况下
需要使用不同的数据集来计算这个数字特征。然而,这通常是不可能的。在
CatBoost中提出的计算这个新特性的过程类似于构建模型所遵循的过程。也就
是说,对于给定的实例随机排列,使用实例< i的信息来计算实例i的特征值,
然后进行多次排列,并对每个实例获得的特征值进行平均。与LightGBM中的
EFB一样,计算分类特征的目标统计是一种预处理技术。因此,在本研究中不
会考虑它。此外,作为LightBGM, CatBoost是一个广泛的库,包括许多功能,如
GPU训练,标准增强,并包括数十个超参数,以适应许多可能的学习情况。这
个库还包括标准梯度增强。然而,在本分析中,我们将重点关注防止预测偏移
的实现(称为Ordered CatBoost)。
在本研究中,为Ordered模式的CatBoost调整了以下超参数(即超参数boosting_
type设置为“Ordered”):
•学习率(learning_rate)。
•树的最大深度(depth)。由于对称树(CatBoost中最好使用的树)是完全树,因此
该超参数的值与其他模型中的类似超参数的值具有不同的效果。高深度值可
能导致巨大的树,这可能会导致内存问题。
•计算叶子值的梯度步数(leaf_estimation_ iterations)。
•L2系数的正则化(l2_leaf_reg)。
3实验结果
在本节中,对随机森林、梯度增强、XGBoost、GOSS LightGBM和Ordered
CatBoost模型的效率进行了广泛的比较分析。在实验中,考虑了来自UCI存储库
(Lichman 2013)的28个不同的数据集。这些数据集来自不同的应用领域,具有不
同数量的属性、类和实例。被分析数据集的特征