XGBoost的多类别分类是如何工作的?

use*_*755 2 python r machine-learning xgboost

我试图了解 XGBoost 中的多类分类是如何工作的。我已经阅读了 Chen 和 Guestrin 的论文(2016,https://arxiv.org/abs/1603.02754),但细节我仍然不清楚:

假设我想为 3 类别分类任务生成一个概率分类器。如果我理解正确的话,XGBoost 将回归树拟合为“弱学习器”或增强模型的组件。因此,如果将新的预测向量传递给 XGB 模型,回归树会生成一个实际值作为“预测”,其(加权)组合是增强模型预测。

这个问题和论文中的文档,我了解到softmax激活函数应用于增强模型预测(真实值?),并且树结构(例如分裂点)是通过优化交叉熵损失来确定的将 softmax 应用于模型输出后的函数。

我不清楚的是三类概率到底是如何获得的。如果模型输出只是一个实值(各个回归树输出的加权组合),那么 softmax 函数的应用如何返回 3 个概率?

我在 Python 和 R 中使用 XGBoost 库,但这可能没有什么区别。

use*_*924 5

XGBoost 模型内可以有多个子 GBDT 模型。具体来说,在多类分类的情况下,每一类都有一个子 GBDT 模型。

在预测过程中,XGBoost 模型评估所有子 GBDT 模型并获得原始 boosting 分数的 n 元素数组。将 softmax 归一化应用于该数组,生成概率值的 n 元素数组。

您可以将 XGBoost 模型导出为 JSON 或 PMML 数据格式,以更详细地检查该机器。