简介:XGBoost
本章将介绍两种可扩展的端到端树形提升系统:XGBoost 和 LightGBM。
概述
阅读本章后,你将能够阐述梯度提升(gradient boosting)的概念,这是 XGBoost 工具包背后的核心思想。你将在合成数据上训练 XGBoost 模型,同时学习早停法(early stopping)以及多个 XGBoost 超参数的调优方法。除了之前使用过的通过设置 max_depth 来生长决策树的方法外,你还将了解 XGBoost 提供的一种全新的树生长方式:基于损失引导的树生长(loss-guided tree growing)。在学习完 XGBoost 之后,你还将接触到一种新颖且强大的模型预测解释方法——SHAP(SHapley Additive exPlanations,即 Shapley 加性解释)。你将看到 SHAP 值如何用于对任意数据集(而不仅仅是训练数据)中的每一条样本提供个性化的预测解释,并理解 SHAP 值的加性特性。
正如我们在上一章中所看到的,决策树及其集成模型是构建机器学习模型的强有力方法。虽然随机森林已经存在数十年,但近年来对另一种树集成方法——梯度提升树(gradient boosted trees)的研究,催生了当前最先进的模型,这类模型在表格型数据(即以结构化表格形式组织的数据,类似于案例研究中的数据)的预测建模领域占据了主导地位。
构建高精度预测模型的工具包
目前,机器学习数据科学家在处理表格数据时,最常用于构建高精度预测模型的两个主要工具包是 XGBoost 和 LightGBM。在本章中,我们将先使用一个合成数据集熟悉 XGBoost 的基本用法,然后在实践环节将其应用于实际案例数据。
注意:XGBoost 的优越性能已有充分佐证。一篇介绍该系统的论文曾指出,在 Kaggle(一个流行的机器学习竞赛平台)2015年发布的29个获奖解决方案中,有17个使用了 XGBoost;其中8个方案完全依赖 XGBoost 训练模型,其余多数则将 XGBoost 与神经网络结合使用。作为对比,第二受欢迎的方法——深度神经网络——仅出现在11个解决方案中(Chen 和 Guestrin,2016,《XGBoost:一种可扩展的树提升系统》)。
正如我们将要看到的,XGBoost 将我们此前讨论过的多个概念有机地结合在一起,包括决策树、集成学习以及梯度下降等。
除了模型性能的提升,近年来的机器学习研究还发展出更精细的模型预测解释方法。不同于以往仅能从整体上解释模型训练集的手段(例如逻辑回归的系数或随机森林的特征重要性),一种名为 SHAP 的新工具包使我们能够针对任意数据集(如验证集或测试集)中的每一个样本单独解释其预测结果。这对于数据科学家以及业务合作伙伴来说非常有价值,有助于我们在细粒度层面上理解模型对新数据的决策机制。