今天分享一篇论文《XGBoost: A Scalable Tree Boosting System》,由陈天奇于2016年发表,该算法在Kaggle等比赛中大放异彩,现在在工业界也被广泛应用。

Tree boosting是高效并被广泛应用的机器学习方法。XGBoost是一种适用于大规模数据的端到端的boosting系统。本文提出了一种新颖的稀疏感知算法和加权分位数快速近似数学习算法。更重要的,本文提供了关于缓存访问模式,数据压缩和分片的见解,以构建一个可扩展的树型增强系统。 通过结合这些见解,XGBoost可以使用比现有系统少得多的资源来支撑数十亿个样本的训练。
摘要中主要强调了两个方面的贡献,一个是结点分裂算法,一个是决策树系统的设计。本文参考论文的行文顺序,会先简要回顾一下Tree boosting,然后会主要针对这两部分,总结一下XGBoost的优势。
- Tree boosting回顾
Boosting方法是一类应用广泛且非常有效的统计学习方法。它是基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比任何一个专家单独的判断要好。这种思想整体上可以分为两种:
强可学习:如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称为强可学习,直接单个模型就搞定常规问题。就好比专家给出的意见都很接近且都是正确率很高的结果,那么一个专家的结论就可以用了,这种情况非常少见。
弱可学习:如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。这种情况是比较常见的。
Boosting算法主要是针对弱可学习的分类器来开展优化工作。其关心的问题包括两方面内容:
(1)在每一轮如何改变训练数据的权值和概率分布;
(2)如何将弱分


2820

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



