XGBoost中用于多类分类的损失函数是什么?

7
我想了解XGBoost在多类分类中使用的损失函数。我在这个问题中找到了适用于二元分类的逻辑分类损失函数(在此问题中)
我曾认为对于多类情况,它可能与GBM相同(针对K类)(可以在此处查看),其中y_k=1,如果x的标签是k,否则为0,并且p_k(x)是softmax函数。然而,我使用此损失函数进行了一阶和二阶梯度计算,但海森矩阵与代码(在SoftmaxMultiClassObj的GetGradient函数中)中定义的矩阵不匹配,差了一个常数2。
请问使用的是哪种损失函数?
提前感谢您。
1个回答

7
用于多类的损失函数是softmax目标函数,正如你所猜测的那样。截至目前,多类的唯一选项如下所示:`multi:softprob`返回所有概率而不仅仅是最可能的类别的概率。
引用如下: “multi:softmax”-将XGBoost设置为使用softmax目标进行多分类,您还需要设置num_class(类数)。 “multi:softprob”-与softmax相同,但输出ndata * nclass向量,可以进一步重塑为ndata,nclass矩阵。结果包含每个数据点属于每个类的预测概率。
请参见https://xgboost.readthedocs.io/en/latest//parameter.html#learning-task-parameters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接