正确使用auc指标的xgboost

时间:2017-01-10 06:44:09

标签: xgboost auc

对于二元分类问题,我有一个稍微不平衡的数据集,正负比为0.6。 我最近从这个答案中了解了auc指标:https://stats.stackexchange.com/a/132832/128229,并决定使用它。

但是我发现另一个链接http://fastml.com/what-you-wanted-to-know-about-auc/声称,AUC-ROC对类不平衡不敏感,我们应该使用AUC作为精确回忆曲线。

xgboost文档不清楚他们使用哪种AUC,他们是否使用AUC-ROC? 该链接还提到,只有在您不关心概率并且只关心排名的情况下才应该使用AUC。

然而,由于我使用二元:逻辑目标,我认为我应该关心概率,因为我必须为我的预测设置一个阈值。

xgboost参数调整指南https://github.com/dmlc/xgboost/blob/master/doc/how_to/param_tuning.md 还提出了另一种处理类不平衡的方法,即不平衡正负样本并使用max_delta_step = 1.

有人可以解释,AUC何时优先于xgboost处理类不平衡的另一种方法。如果我使用AUC,我需要为预测设置的阈值是多少,或者更一般地说我应该如何使用AUC来处理xgboost中的不平衡二进制分类问题?

修改

我还需要消除假阳性而不是假阴性,除了简单地改变阈值之外,我怎么能实现这一点,用二元:逻辑目标?

2 个答案:

答案 0 :(得分:0)

根据here中的xgboost参数部分,有aucaucpr,其中pr代表精确召回。

我想说,您可以通过运行两种方法并了解指标的行为来建立一些直觉。您可以包含多个指标,甚至可以根据自己的喜好进行优化。

您还可以通过创建自定义指标,在每个提升回合中监控误报率。

答案 1 :(得分:0)

XGboost 选择写 AUC(ROC 曲线下的面积),但有些人更喜欢写得更明确,比如 AUC-ROC / ROC-AUC。

https://xgboost.readthedocs.io/en/latest/parameter.html