本题考察多分类与多标签的本质区别及算法选型。
核心错误:multi:softmax 和 multi:softprob 都是针对多分类(Multi-class)即标签互斥设计的,其内部的 Softmax 会强制所有类别概率之和为 1,无法表示多个标签同时存在的情况。Softmax 函数的分母是 ∑▒e^(z_i ) ,这在数学上强制了不同类别之间存在竞争关系(概率和为1)。
多标签(Multi-label)意味着各类别独立(概率和可以大于1,也可以小于1)。
正确做法:应该为每个标签训练一个二分类模型(Binary Relevance),或者使用支持多标签的损失函数(如将问题转化为 Multi-output 维度,使用 Binary Cross Entropy 独立计算每个维度的 Loss)。