选择 auc、error 或 logloss 作为 XGBoost 的 eval_metric 对其性能有何影响?假设数据不平衡。它如何影响准确度、召回率和精确度?
最佳答案
在不同的评估矩阵 之间进行选择 不会直接影响性能。 用户 可以使用评估矩阵来评估他的模型。准确率是另一种评估方法,精度召回也是如此。另一方面,目标函数 和 会影响所有这些评估矩阵
例如,如果一个分类器对标签 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_stopping。 early_stopping 根据您的评估指标决定何时停止训练额外的助推器。
early_stopping 旨在防止过度拟合。
关于xgboost - 对于 XGBoost 二进制分类问题,选择 auc/error/logloss 作为 eval_metric 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51757345/