XGboost:一种可扩展的boosting系统”论文介绍
摘要
作者介绍了一种可扩展的端到端tree boosting模型,这种模型能广泛应用于数据科学中,模型训练迅速,并能得到目前为止最好的实验结果。文章可分为两大部分,第一部分作者介绍了模型的原理,并提出了相应的算法;而第二部分主要讲系统的设计和实现。
第一部分中,作者介绍了模型的原理和推导,包括损失函数的构建、树分裂的原理等。为了有效的进行模型运算,作者提出了两种算法,一种为精确的朴素算法(Basic Exact Greedy Algorithm),而另一种为估计算法(Approximate Algorithm),这种算法能快速有效的进行分割点的查找,并能进行分布式的训练。在该估计算法下,作者还提出了对稀疏数据的解决方案(稀疏感知算法:Sparsity-aware algorithm)和一种能提出候选分割点的方法(加权分位草图:Weighted quantile sketch)。
第二部分中在系统设计与实现中,作者提出了三种可用于系统优化的方法:适用于并行学习的列块(Column Block for Parallel Learning)、自适应cache访问(Cache-aware Access)、核外计算的块(Blocks for Out-of-core Computation),而这三种方法也正是该系统能够可扩展(Scalable)的原因。
本文通过摘取和理解其中重要的部分,对该论文中的内容作出自己的解读和探讨。
一、模型的建立与推导
1.1正则化目标函数
由于XGboost是基于Tree Boosting的方法,因此作者首先简要地回顾了Tree Boosting的方法,并对其正则化目标函数做了微小的改进。
对于给出的数据集:
其中n为数据集的个数;xi为第i条数据,且为m维向量;yi为第i条数据所对应的标签。
Boosting是集成学习的一种算法,其基本思想是将一族弱分类器提升为强学习器的算法。为了拟合数据集真实的分布,我们定义有K个弱分类器用于预测输出结果:
其中 y ^ \widehat{y} y
i