最近研究机器学习理论,学习了一下陈天奇博士的论文,做了一点简单的翻译和批注,在这里记录一下。
本文将按照论文的顺序来介绍xgb,其中穿插我自己的理解和我对于论文原文的中文翻译,以及一些公式的截图。原文翻译将使用红色来标注,其余的皆为我自己理解的内容,涉及参数调整的我会加粗。
===================================================
论文题目是
XGBoost: A Scalable Tree Boosting System
从题目中就可以看出来,这篇文章重点讲的是一个system,而不是algorithm,本文的重点大篇幅地介绍了xgb整个系统是如何搭建,如何实现的,在模型算法的公式改进上只做了一点微小的工作。
摘要
树的提升是一种非常有效且被广泛使用的机器学习方法。 在本文中,我们描述了一个名为XGBoost的有延展性的端到端的树提升系统,数据科学家们广泛使用该系统来实现许多机器学习挑战的最新成果。我们提出了一种新颖的稀疏数据感知算法用于稀疏数据,一种带权值的分位数略图(weighted quantile sketch) 来近似实现树的学习。更重要的是,我们提供有关缓存访问模式,数据压缩和分片的见解,以构建有延展性的提升树系统。通过结合这些见解,XGBoost可用比现系统少得多的资源来处理数十亿规模的数据。
关键词:大规模机器学习
摘要这段没什么好说的,后面都会详细介绍,这段内容不多,我就翻译了一下。
第一章 绪论
机器学习和数据驱动的方法在许多领域变得非常重要。智能垃圾邮件分类器通过从大量的垃圾邮件数据和用户反馈中学习来保护我们的邮箱;广告系统学习将正确的广告与正确的背景相匹配;欺诈检测系统保护银行免受恶意攻击;异常事件检测系统帮助实验物理学家发现新的物理现象。有两个重要因素可以推动这些成功的应用:使用能捕获复杂数据依赖性的有效的(统计)模型,以及能从大型数据集里学习出模型的可扩展的学习系统。
在实际应用的机器学习方法里,GradientTree Boosting (GBDT)是一个在很多应用里都很出彩的技术。提升树方法在很多有标准分类基准的情况下表现很出色。LambdaMART这个提升树的变种,用来排序的,也表现出了不错的结果,它除了被用于单独的预测器,还在实际生产中被用于广告点击率预测。它是很多集成方法里的实际选择,此外还用于Netflix这样的比赛。
本文描述的可扩展的提升树机器学习系统已经开源了,它的影响力已经被许多机器学习和数据挖掘的比赛所广泛认可。拿机器学习大赛Kaggle举例:2015年发布的29个获胜方法里有17个用了XGBoost。在这些方案里,有8个仅用了XGBoost,另外的大多数用它结合了神经网络。对比来看,第二流行的方法,深度神经网络,只被用了11次。这个系统的成功性也被KDDCup2015所见证了,前十的队伍都用了XGBoost。此外,据胜出的队伍说,很少有别的集成学习方法效果能超