之Xgboost算法,xgboost算法

传统算法都是经典算法,比如k-近邻算法,线性回归,逻辑回归,svm,主成分分析pca,决策树,随机森林,集成学习,xgboost,朴素贝叶斯算法,隐马尔可夫算法,EM算法等等 。首先,算法是无穷多的,而且每天都会有新的算法出现,不过有些算法成为了经典,也就成为我们需要学习作为基础的算法知识 。
为什么XGBoost在机器学习竞赛中表现如此卓越?

之Xgboost算法,xgboost算法


挪威科技大学 Didrik Nielsen 的硕士论文《使用 XGBoost 的树提升:为什么 XGBoost 能赢得「每一场」机器学习竞赛?(Tree Boosting With XGBoost - Why Does XGBoost Win "Every" Machine Learning Competition?)》研究分析了 XGBoost 与传统 MART 的不同之处以及在机器学习竞赛上的优势 。
本文对这篇长达 110 页的论文进行了解读,提炼出了其中的要点和核心思想,汇成此篇 。引言tree boosting(树提升)已经在实践中证明可以有效地用于分类和回归任务的预测挖掘 。之前很多年来,人们所选择的树提升算法一直都是 MART(multiple additive regression tree/多重累加回归树) 。
但从 2015 年开始,一种新的且总是获胜的算法浮出了水面:XGBoost 。这种算法重新实现了树提升,并在 Kaggle 和其它数据科学竞赛中屡获佳绩,因此受到了人们的欢迎 。在《Tree Boosting With XGBoost - Why Does XGBoost Win "Every" Machine Learning Competition?》这篇论文中,来自挪威科技大学的 Didrik Nielsen 研究调查了:1.XGBoost 与传统 MART 的不同之处2.XGBoost 能赢得「每一场」机器学习竞赛的原因这篇论文分成三大部分:1. 回顾统计学习的一些核心概念2. 介绍 boosting 并以函数空间中数值优化的方式对其进行解释;进一步讨论更多树方法以及树提升方法的核心元素3. 比较 MART 和 XGBoost 所实现的树提升算法的性质;解释 XGBoost 受欢迎的原因统计学习的基本概念这篇论文首先介绍了监督学习任务并讨论了模型选择技术 。
机器学习算法的目标是减少预期的泛化误差,这也被称为风险(risk) 。如果我们知道真实的分布 P(x,y),那么风险的最小化就是一个可以通过优化算法解决的优化任务 。但是,我们并不知道真实分布,只是有一个用于训练的样本集而已 。我们需要将其转换成一个优化问题,即最小化在训练集上的预期误差 。因此,由训练集所定义的经验分布会替代真实分布 。
上述观点可以表示成下面的统计学公式:其中是模型的真实风险 R(f) 的经验估计 。L(.) 是一个损失函数,比如平方误差损失函数(这是回归任务常用的损失函数),其它损失函数可以在这里找到:http://www.cs.cornell.edu/courses/cs4780/2017sp/lectures/lecturenote10.html 。
n 是样本的数量 。当 n 足够大时,我们有: ERM(经验风险最小化)是一种依赖于经验风险的最小化的归纳原理(Vapnik, 1999) 。经验风险最小化运算 是目标函数的经验近似,定义为:其中 F 属于某个函数类,并被称为某个模型类(model class),比如常数、线性方法、局部回归方法(k-最近邻、核回归)、样条函数等 。
ERM 是从函数集 F 中选择最优函数 的标准 。这个模型类和 ERM 原理可以将学习问题转变成优化问题 。模型类可以被看作是候选的解决方案函数,而 ERM 则为我们提供了选择最小化函数的标准 。针对优化问题的方法有很多,其中两种主要方法是梯度下降法和牛顿法;MART 和 XGBoost 分别使用了这两种方法 。
这篇论文也总结了常见的学习方法:1. 常数2. 线性方法3. 局部最优方法4. 基函数扩展:显式非线性项、样条、核方法等5. 自适应基函数模型:GAM(广义相加模型)、神经网络、树模型、boosting另一个机器学习概念是模型选择(model selection),这要考虑不同的学习方法和它们的超参数 。

推荐阅读