我正在尝试了解XGBoost中的多类分类如何工作。我已经阅读了Chen和Guestrin撰写的论文(2016,https://arxiv.org/abs/1603.02754),但我仍然不清楚细节:
说我想为3类分类任务生成一个概率分类器。如果我理解正确,那么XGBoost会将回归树适合为“弱学习者”或boosting模型的组成部分。因此,如果将新的预测变量矢量传递给XGB模型,则回归树将产生一个真实值作为“预测”,其(加权)组合是增强模型的前兆。
[从this question和本文的文档中,我收集到将softmax激活函数应用于增强模型预测(真实值?),并且通过优化交叉确定树结构(例如,分割点) softmax应用于模型输出后的-熵损失函数。
我不清楚的是,究竟如何获得三个类别的概率。如果模型输出只是一个实值(各个回归树的输出的加权组合),那么softmax函数的应用如何返回3个概率?]
我在Python和R中都使用XGBoost库,但这可能没有什么区别。
XGBoost模型中可以有多个子GBDT模型。具体来说,在进行多类别分类的情况下,每个类别都有一个子GBDT模型。
[在预测期间,XGBoost模型评估所有子GBDT模型,并获得n元数组的原始提升分数。将softmax归一化应用于此数组,从而生成概率值的n元素数组。
您可以将XGBoost模型导出为JSON或PMML数据格式,以更详细地检查此机器。