对于 XGBoost 二元分类问题,选择 auc/error/logloss 作为 eval_metric 有什么影响?

What is the impact from choosing auc/error/logloss as eval_metric for XGBoost binary classification problems?

选择 auc、error 或 logloss 作为 XGBoost 的 eval_metric 如何影响其性能?假设数据不平衡。它如何影响准确率、召回率和精确率?

在不同的评估矩阵之间进行选择不会直接影响性能。 用户可以使用评估矩阵评估他的模型。 accuracy是另一种评价方式,precision-recall也是。另一方面,Objective函数影响所有这些评估矩阵的因素

例如,如果一个分类器对标签 1 产生的概率为 0.7,对标签 0 产生的概率为 0.3,而另一个分类器对标签 1 产生的概率为 0.9,对标签 0 产生的概率为 0.1,您将得到不同的错误在它们之间,尽管它们都能正确分类标签。

就个人而言,大多数时候,我使用 roc auc 来评估二元分类,如果我想看得更深,我会看混淆矩阵。

处理不平衡数据时,需要知道不平衡的程度是多少,是30% - 70% 还是0.1% - 99.9%?我读过一篇文章,谈到精确召回率如何更好地评估高度不平衡的数据。

更多阅读material:

Handling highly imbalance classes and why Receiver Operating Characteristics Curve (ROC Curve) should not be used, and Precision/Recall curve should be preferred in highly imbalanced situations

ROC and precision-recall with imbalanced datasets

评估指标影响模型准确性(或其他不同评估矩阵)的唯一方法是使用 early_stoppingearly_stopping 根据您的评估指标决定何时停止训练额外的助推器。 early_stopping旨在防止过拟合.