深入理解XGBoost:高效机器学习算法与进阶
上QQ阅读APP看书,第一时间看更新

前言

大数据时代的今天,基于规则解决具体业务问题的传统方式已无法满足企业需求,机器学习与人工智能逐渐走入人们的视野,并迅速得到了众多企业的广泛关注。各大互联网公司相继成立了自己的机器学习研究院,或建立机器学习团队。然而,随着企业业务规模、数据规模日益扩大,业务类型越来越复杂,怎样在短时间内训练出高准确率的模型,成为许多企业面对的挑战。

在机器学习与人工智能的浪潮中,XGBoost凭借高效、便捷、扩展性强等优势,在众多开源机器学习库中脱颖而出,广受各大企业青睐。目前XGBoost已成为热门的机器学习开源项目之一,拥有强大的社区支持,技术也日趋成熟。

为什么要写这本书

最初写这本书的想法萌生于两年前。当时,一些刚接触XGBoost的同事让我推荐学习资料,但我发现除了英文论文和官方文档外,竟找不到一本XGBoost的入门书籍。当然,论文和官方文档是学习XGBoost的重要参考资料,但对于刚接触机器学习的初学者而言,学习这些资料的成本相对较高。如果没有足够的理论基础,初学者容易一开始就被细节和难点缠住,降低学习的积极性。

XGBoost涉及的相关知识较多,资料比较分散,苦于缺乏一个系统、完整的学习教程可以参考,学习者不得不在搜集资料上耗费大量时间。此外,对于XGBoost的应用也少有完整的案例剖析。想深入理解XGBoost的学习者,只能通过研究项目源码的方式进行学习,这显然不是一个特别高效的学习方式。

为了能够深入理解XGBoost中各个组件的实现原理,笔者也花费了很多时间和精力。在阅读了相关论文文档、深入研究源码并多次实践后,积累了很多学习笔记,对XGBoost也有了自己的理解,由此便萌生了将其整理成书的想法。这样既可以帮助更多的人快速了解和学习XGBoost,使自己的学习所得发挥更大的价值,也可以在梳理所学知识的过程中进一步提升。

本书特色

本书是国内少有的系统、全面地介绍XGBoost技术原理的书籍,以通俗易懂的方式对XGBoost的原理和应用进行介绍,力求帮助读者深入理解XGBoost。

(1)讲授循次而进,符合初学者的认知规律。本书首先介绍机器学习中的常用算法,帮助读者直观地理解算法的基本原理,打下良好的理论基础。然后由浅入深,鞭擗向里,带领读者深入探索机器学习前沿技术。

(2)内容涵盖全面,重视理解深度。本书不仅全面覆盖了决策树、Gradient Tree Boosting、目标函数近似、切分点查找算法等常见内容,还详细讲解了分布式实现、排序学习、模型解释性、DART等内容。

(3)案例实用丰富,帮助读者解决实际遇到的机器学习问题。本书在每个算法讲解之后都配有相应的编程示例,不仅使读者理解算法原理,还有助于提升灵活运用算法的能力。

另外,本书可以作为算法开发人员手边的工具书,在学习和工作的过程中随时查阅参考。

读者对象

·人工智能领域的算法工程师

·人工智能领域的架构师

·其他对机器学习感兴趣的人

如何阅读本书

本书共有10章,具体内容如下。

第1章介绍了何谓机器学习和机器学习中的一些基本概念,以及机器学习应用开发的步骤,并对集成学习的历史发展、XGBoost的应用场景及其优良特性进行了概述。

第2章详细讲解了Python机器学习环境的搭建及常用开源工具包的安装和使用,并以一个简单的示例展示XGBoost的使用方法。

第3章讲述了常用机器学习算法的实现原理和应用,如线性回归、逻辑回归、决策树、神经网络、支持向量机等,使读者对机器学习算法有一个整体认知,同时了解如何在模型训练过程中进行优化、如何对模型结果进行评估。

第4章通过scikit-learn与XGBoost相结合,以实际的案例向读者说明如何通过XGBoost解决分类、回归、排序等问题,并介绍了XGBoost中常用功能的使用方法。

第5章深入介绍XGBoost的实现原理,包括Boosting算法思想、XGBoost目标函数近似、切分点查找算法、排序学习、模型可解释性等内容,从理论上保证XGBoost的有效性,使读者深入理解XGBoost。

第6章详细介绍了分布式XGBoost的实现原理,包括分布式机器学习框架Rabit,XGBoost在Spark、Flink平台的实现,GPU版本的实现等。

第7章从源码的角度深入剖析了XGBoost中各个组件的实现原理,详细介绍了模型训练、预测、解析,以及不同目标函数和评估函数的实现过程。

第8章详细介绍了如何通过模型选择与优化提高模型的泛化能力,从偏差和方差的角度进行了解释,通过交叉验证和Bootstrap等方法来说明模型选择过程,并介绍了常用的超参数优化方法。

第9章通过实际案例分析,使读者能够深入理解XGBoost的特性并灵活运用,能够依据不同场景将XGBoost与其他模型融合,更好地解决实际问题。

第10章介绍了业界或学术界中树模型与其他模型融合的一些研究方法,包括GBDT+LR,多层GBDT模型结构mGBDT,树模型与深度学习、强化学习的融合等。

如果你是具有一定机器学习理论基础的从业者,可以跳过前4章的基础部分,直接从第5章开始阅读。如果你是一位机器学习的初学者,并打算在未来深入钻研这个方向,建议系统地阅读本书,并动手实践书中的所有实例。

勘误和支持

由于笔者水平有限,编写时间仓促,书中难免存在一些错误或表达不准确之处,恳请读者批评指正。如果你有更多的宝贵意见,可通过电子邮箱xgbbook2019@163.com联系我,期待得到你们的真挚反馈,让我们在技术之路上互勉共进。

感谢

感谢中国人民大学的杜小勇老师、陈晋川老师,是他们帮我打开了科研的大门,让我体会到钻研知识的乐趣。感谢滴滴出行的李奘、卓呈祥、杜龙志以及所有在工作中帮助过我的同事。感谢机械工业出版社华章公司的高婧雅编辑在本书写作过程中给予我的支持和帮助。

特别感谢本书的第一读者—我的爱人高阳,因为写作,我牺牲了很多陪伴她的时间,感谢她的支持和理解,也感谢她帮我进行文稿校对。感谢她一路的支持和陪伴。

何龙