【问题标题】:How does XGBoost's multi-category classification work?XGBoost 的多类别分类是如何工作的?
【发布时间】:2020-05-02 15:45:29
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: python r machine-learning xgboost


【解决方案1】:

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

在预测期间,XGBoost 模型评估所有子 GBDT 模型并获得原始提升分数的 n 元素数组。对这个数组应用 softmax 归一化,产生一个概率值的 n 元素数组。

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

【讨论】:

    猜你喜欢
    • 2017-10-20
    • 2017-06-18
    • 1970-01-01
    • 2020-01-19
    • 2011-09-06
    • 2018-03-08
    • 2019-11-22
    相关资源
    最近更新 更多