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

Ana*_*mez 6 xgboost multiclass-classification

我想知道哪个损失函数使用XGBoost进行多类分类。我在这个问题中发现了二进制情况下逻辑分类的损失函数。

我在多类情况下有可能与GBM(对于K类)相同,在这里可以看到,其中x的标签为k且其他任何情况下为0时y_k = 1,而p_k(x)是softmax函数。但是,我已经使用此损失函数进行了一阶和二阶渐变,并且粗麻布与此处代码(在SoftmaxMultiClassObj中的GetGradient函数中)定义的常数不匹配,常数为2。

您能告诉我使用哪个损失函数吗?

先感谢您。

小智 6

您怀疑,用于多类的损失函数是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