Hannah 2019-04-08
我仍然记得十五年前第一份工作的第一天,我刚刚完成了我的研究生课程,并以分析师的身份加入了一家全球投资银行。在上班的第一天,我还是很紧张的,我经常会有的小动作就是会时常拉一下我的领带,我一直在脑海中回忆我曾经学过的一切知识,同时也考虑是不是能够给我的企业带来一些价值。然而,感受到我的焦虑之后,我的老板表示,“不需要担心,你只要知道回归模型就好了。”
我当时确实只考虑这一个问题,事实证明,我的老板是很正确的,当时,回归建模是无可争议的预测分析女王,我当时专门建立了基于回归的统计模型,快近十五年之后,回归建模的时代已经结束了,老女王的日子也已经过去了,新女王的名字也逐渐诞生了,很长很长:XGBoost或Extreme Gradient Boosting!
什么是XGBoost?
XGBoost是一种基于决策树的集成机器学习算法,它使用的是梯度增强框架。在涉及非结构化数据(图像、文本等)的预测问题中,人工神经网络倾向于优于所有其他算法或框架。但是,当涉及到中小型结构/表格数据时,基于决策树的算法现在被认为是同类最佳的。可以参阅下面的图表,了解多年来基于树的算法的演变。
决策树的XGBoost算法演化
XGBoost算法是作为华盛顿大学的研究项目开发的。陈天奇和Carlos Guestrin在2016年的SIGKDD会议上发表了他们的论文,并在机器学习的领域掀起了轰动。自推出以来,该算法不仅赢得了众多Kaggle比赛的胜利,而且还成为几个尖端行业应用的引擎驱动力。此外,有一个强大的数据科学家社区为XGBoost开源项目做出贡献,在GitHub上有大约350个贡献者和大约3,600个提交。该算法通过以下方式区分自己:
如何为XGBoost建立直觉?
决策树形式最简单,是易于可视化和可解释的算法,但建立下一代基于树的算法的直觉可能有点棘手。请参阅下面的简单类比,以更好地了解基于树的算法的演变。
想象一下,你是一名招聘经理,面试几位具有优秀资历的候选人。基于树的算法演变的每一步都可以看作是访谈过程的一个版本。
为什么XGBoost表现如此之好?
XGBoost和Gradient Boosting Machines(GBMs)都是集合树方法,它们应用了使用梯度下降架构来提升弱学习者(通常是CART)的原理。但是,XGBoost通过系统优化和算法增强改进了基础GBM框架。
XGBoost如何优化标准GBM算法
系统优化:
算法增强功能:
证据在哪里?
我们使用Scikit-learn的'Make_Classification'数据包创建了一个包含20个特征(2个信息和2个冗余)的100万个数据点的随机样本。我们测试了几种算法,如Logistic回归、随机森林、标准梯度提升和XGBoost。
使用SKLearn的Make_Classification数据集的XGBoost与其他ML算法
如上图所示,与其他算法相比,XGBoost模型具有预测性能和处理时间的最佳组合。其他严格的基准研究也产生了类似的结果。难怪XGBoost在最近的数据科学竞赛中被广泛使用。
那么我们应该一直只使用XGBoost吗?
谈到机器学习(甚至是生活),没有免费的午餐!作为数据科学家,我们必须测试所有可能的数据算法,以确定冠军算法。此外,选择正确的算法是不够的,我们还必须通过调整超参数为数据集选择正确的算法配置。此外,选择获胜算法还有其他几个考虑因素,例如计算复杂性、可解释性和易于实现。这正是机器学习开始从科学走向艺术的地步,但老实说,这就是魔术发生的地方!
未来该何去何从?
机器学习是一个非常活跃的研究领域,已经有几种可行的XGBoost替代方案。微软研究院最近发布了LightGBM框架,用于梯度增强,显示出巨大的潜力。由Yandex Technology开发的CatBoost已经提供了令人印象深刻的基准测试结果。我们有一个更好的模型框架,在预测性能、灵活性、可解释性和实用性方面优于XGBoost,这是一个时间问题。然而,直到一个强大的挑战者出现,XGBoost将继续统治机器学习世界!
编译出品