我试图了解 XGBoost 中的多类分类是如何工作的。我已经阅读了 Chen 和 Guestrin 的论文(2016, https://arxiv.org/abs/1603.02754 ),但细节我仍然不清楚:
假设我想为 3 类别分类任务生成一个概率分类器。如果我理解正确的话,XGBoost 将回归树拟合为“弱学习器”或增强模型的组件。因此,如果将新的预测向量传递给 XGB 模型,回归树会生成一个真实值作为“预测”,其(加权)组合就是增强模型预测。
来自this question以及论文中的文档,我发现将 softmax 激活函数应用于增强模型预测(真实值?),并且树结构(例如 split 点)是通过优化交叉熵损失函数来确定的softmax 应用于模型输出。
我不清楚的是三类概率到底是如何获得的。如果模型输出只是一个实值(各个回归树输出的加权组合),那么 softmax 函数的应用如何返回 3 个概率?
我在 Python 和 R 中使用 XGBoost 库,但这可能没有什么区别。
最佳答案
XGBoost 模型内可以有多个子 GBDT 模型。具体来说,在多类分类的情况下,每一类都有一个子 GBDT 模型。
在预测过程中,XGBoost 模型会评估所有子 GBDT 模型并获得原始 boosting 分数的 n 元素数组。将 softmax 归一化应用于该数组,生成概率值的 n 元素数组。
您可以将 XGBoost 模型导出为 JSON 或 PMML 数据格式,以更详细地检查该机器。
关于python - XGBoost的多类别分类是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59758808/