15年前,我刚从研究生院毕业,加入了一家全球投资银行担任分析师。那天,我反复整理领带,努力回想所学的知识,心里不禁怀疑自己是否能够胜任这份工作。注意到我的紧张,我的老板安慰我说:“不用担心,你只需要掌握回归模型就可以了。”
当时,我认为自己已经掌握了回归模型,包括线性回归和逻辑回归。事实证明,我的老板是对的。在我任职期间,我主要建立基于回归的统计模型。那时,回归建模无疑是预测分析领域的王者。然而,随着时间推移,回归建模的时代已经过去,新一代的算法开始崭露头角。特别是XGBoost(极限梯度提升),已经成为新的王者。
XGBoost是一种基于决策树的集成机器学习算法,采用了梯度提升框架。虽然在处理非结构化数据(如图像和文本)时,人工神经网络通常更为出色,但在处理中小型结构化或表格数据时,基于决策树的算法被认为是当前的最佳选择。下面是这些年来基于树的算法的发展概览。
XGBoost最初是由华盛顿大学的研究团队开发的。陈天奇和Carlos Guestrin在2016年SIGGDD大会上的论文发布,使XGBoost迅速成为机器学习领域的明星。自那以后,XGBoost不仅在多个Kaggle竞赛中取得了优异的成绩,还成为了许多前沿行业的关键技术之一。因此,强大的数据科学家社区积极参与XGBoost的开源项目,GitHub上有约350名贡献者和近3600次提交。
XGBoost的特点包括: - 广泛的应用范围:适用于回归、分类、排名及用户自定义预测任务。 - 良好的可移植性:在Windows、Linux和macOS上运行稳定。 - 多语言支持:支持C++、Python、R、Java、Scala和Julia等多种主流编程语言。 - 云集成:支持AWS、Azure和YARN集群,与Flink、Spark等生态系统兼容。
决策树是一种易于理解和可视化的算法,但对于理解基于树的算法的发展过程,可能需要一些类比。让我们通过招聘经理面试应聘者的场景来理解这一过程。
XGBoost和梯度提升机(GBMs)都是集成树方法,通过梯度下降框架提高弱学习者(如CART)的学习能力。但XGBoost通过系统优化和算法增强,进一步提升了基本GBM框架的效果。
我们使用Scikit-Learn的“make_classification”数据包生成了一个包含100万数据点和20个特征的数据集(其中2个特征是信息性的,2个是冗余的)。测试了几种算法,包括逻辑回归、随机森林、标准梯度提升和XGBoost。
结果显示,XGBoost模型在预测能力和处理时间方面均表现出色。其他严格的研究也得到了类似的结论。因此,XGBoost在数据科学竞赛中被广泛应用并不奇怪。“如果有疑问,就用XGBoost”——Owen Zhang
虽然XGBoost在很多情况下表现出色,但在实际应用中,我们仍需测试各种算法,以确定最适合数据集的模型。此外,选择正确的算法后,还需要通过调整超参数来优化模型。计算复杂度、可解释性和实现难度也是重要的考虑因素。尽管如此,XGBoost仍然是目前最强大的工具之一。
机器学习领域正在快速发展,出现了多种XGBoost的替代方案,如微软研究院发布的LightGBM和Yandex Technology开发的CatBoost。这些算法在预测性能、灵活性、可解释性和适用性方面都有出色的表现。虽然XGBoost在未来可能会面临更多竞争,但目前它依然是机器学习领域的领导者。