XGBoost 由华盛顿大学的 Tianqi Chen 开发,是通用框架相同的梯度提升的高级实现;也就是说,它通过将残差相加,将弱学习器树组合成强学习器。该库适用于 C++、Python、R、Java、Scala 和 Julia。1
决策树用于分类或回归任务,在机器学习中应用。它们使用分层树结构,其中内部节点代表一个特征,分支代表决策规则,每个叶节点代表数据集的结果。
由于决策树容易过度拟合,集成方法(例如增强方法)通常可用于创建更为稳健的模型。提升将多个单独的弱树(即性能略好于随机机会的模型)组合在一起,以形成强学习器。每个弱学习器都经过顺序训练,以纠正先前模型所犯的错误。经过数百次迭代后,弱学习器转换为强学习器。
随机森林和提升算法都是流行的集成学习技术,它们使用单个学习器树来提高预测性能。随机森林基于装袋法(bootstrap 聚合)的概念,独立训练每棵树并结合它们的预测,而提升算法则采用加法方法,弱学习器按顺序训练,逐步纠正之前模型的错误。
梯度提升的决策树是一种使用梯度下降的提升算法。与其他提升方法一样,梯度提升从弱学习器开始进行预测。梯度提升中的第一个决策树称为基本学习器。接下来,根据基本学习器的错误以加法方式创建新树。然后,该算法计算每棵树预测的残差,以确定模型的预测与现实的偏差有多大。残差是模型预测值和实际值之间的差值。然后汇总残差,利用损失函数对模型进行评分。
在机器学习中,损失函数用于衡量模型的性能。梯度提升的决策树中的梯度指的是梯度下降。梯度下降用于在训练新模型时最小化损失(即提高模型的性能)。梯度下降是一种流行的优化算法,用于尽量减少机器学习问题中的损失函数。一些常见的损失函数包括回归问题中的均方误差或均值绝对误差,分类问题中的交叉熵损失,或者可以为特定的用例和数据集开发自定义的损失函数。
以下是 XGBoost 在 Python 中的一些功能,与 scikit-learn 中的普通梯度提升包相比,这些功能使其脱颖而出 2 :
在本节中,我们将介绍如何使用 XGBoost 包、如何选择 XGBoost 树加速器的超参数、XGBoost 与其他加速器实现的对比及其一些用例。
假设已经对数据执行了探索性数据分析,请继续将数据分配到训练数据集和测试数据集之间。接下来,将数据转换为 XGBoost 期望的 DMatrix 格式3。DMatrix 是 XGBoost 的内部数据结构,针对内存效率和训练速度进行了优化4。
接下来,您可能希望迭代超参数的组合,以帮助提高模型的性能。超参数调整是机器学习算法超参数的优化过程。可以使用网格搜索和交叉验证方法找到最佳超参数,这些方法会遍历可能的超参数微调选项字典。
以下是 XGBoost 中可用于调整梯度增强树的一些超参数的解释:
XGBoost 是众多可用的开源加速算法之一。在本节中,我们将 XGBoost 与其他三个助推框架进行比较。
AdaBoost 是由 Yoav Freund 和 Robert Schapire 于 1995 年发明的早期提升算法 7。在 AdaBoost 中,通过权重系统更加重视错误的预测,这些权重系统会对更难预测的数据点产生更大的影响。 首先,数据集中的每个数据点都被分配了一个特定的权重。当弱学习器正确预测一个例子时,该示例的权重就会减轻。但是,如果学习器举错了例子,该数据点的权重就会增加。创建新树时,它们的权重是基于先前学习器树的错误分类。随着学习器数量的增加,未来学习器将会越来越少地使用那些容易预测的样本,而那些较难预测的数据点将会被赋予更大的权重。梯度提升和 XGBoost 由于其准确性和速度,往往能成为 AdaBoost 更强大的替代方案。
CatBoost 是另一个梯度提升框架。由 Yandex 于 2017 年开发,专门处理分类特征,无需任何预处理,通常直接可用,无需执行广泛的超参数调整8。与 XGBoost 一样,CatBoost 内置了对处理缺失数据的支持。CatBoost 对于具有许多分类特征的数据集特别有用。据 Yandex 称,该框架可用于搜索、推荐系统、个人助理、自动驾驶汽车、天气预报和其他任务。
LightGBM (Light Gradient Boosting Machine) 是我们将要审查的最终梯度提升算法。LightGBM 由 Microsoft 开发,于 2016 年首次发布 9。大多数 Decision Trees 学习算法在深度上生长树木,而 LightGBM 使用逐叶树生长策略 10。与 XGBoost 一样,LightGBM 表现出较快的模型训练速度和准确性,在大型数据集上表现良好。
XGBoost 和梯度增强decision trees用于各种数据科学应用,包括:
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。