使用软标签训练 xgboost

时间:2021-03-02 02:18:31

标签: python xgboost

我正在尝试使用 xgboost 提取另一个分类器模型“C”的预测。因此,我得到了 C 为正样本预测的概率,而不是标签。

我尝试做最明显的事情,使用 C 输出的概率,就好像它们是标签

distill_model = XGBClassifier(learning_rate=0.1, max_depth=10, n_estimators=100)
distill_model.fit(X, probabilities)

但在那种情况下,XGBoost 似乎只是将每个不同的概率值转换为它自己的类。因此,如果 C 输出 72 个不同的值,XGBoost 会将其视为不同类别的 72 个。我已经尝试将目标函数更改为 multi:softmax/multi:softprob 但这没有帮助。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

可能有一个带有自定义损失的 xgboost 特定方法。但是一个通用的解决方案是将每个训练行分成两行,每个行都有一个标签,并为每一行分配该标签的原始概率作为其权重。