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

标签 xgboost

选择 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/

相关文章:

python - 属性错误: 'module' object has no attribute 'DMatrix

windows - 安装 Alien::XGBoost 库时出错

r - 为什么用伪 Huber 损失训练 Xgboost 模型会返回一个恒定的测试指标?

python - ImportError : No module named numpy. distutils.core(Ubuntu xgboost 安装)

c++ - 如何释放函数中分配的内存

python - XGBoost Python 错误 : "Size of labels must equal to number of rows"

r - xgboost多项式分类错误: "label and prediction size not match"

python - 在 XGBoost.XGBRegressor 中创建自定义目标函数

python - xgboost 中的访问训练和评估错误

r - R : how does xgb. cv 中的 xgboost 将最优参数传递到 xgb.train