在 XGBoost 中,我们会使用 Precision Recall 曲线与 ROC 来评估结果吗?

数据挖掘 xgboost
2021-09-29 03:56:09

我正在使用 XGBoost 进行支付欺诈检测。目标是二分类,数据很不平衡。每 3-4k 笔交易中就有一笔是欺诈。

我希望评估结果的最佳方法是精确召回 (PR) 曲线,而不是 ROC 曲线,因为数据是如此不平衡。

但是在 eval_metric 选项中,我只看到 ROC 曲线 (AUC) 下的区域,并且没有 PR 选项。 https://github.com/dmlc/xgboost/blob/master/doc/parameter.md

文档还推荐 AUC http://xgboost.readthedocs.io/en/latest/how_to/param_tuning.html

不使用 Precision-Recall (PR) 曲线是否有意义?

2个回答

差不多两年后,我正在回答我自己的问题。XGBoost 现在有一个新的评估指标 aucpr。

https://xgboost.readthedocs.io/en/latest/parameter.html#learning-task-parameters

大卫,您可以使用平均平均精度('map')甚至更好的 logloss('logloss')。是的,对于不平衡的数据,精确度和召回率非常重要。我建议在使用您选择的任何 eval_metric 进行优化后单独检查这些指标。此外,还有一个名为 scale_pos_weight 的参数,它有助于告诉模型您的数据分布。我发现这可以极大地提高“罕见事件”案例的性能。以下降价文档包含所有参数及其选项的列表。https://github.com/dmlc/xgboost/blob/master/doc/parameter.md