洛格洛斯vs基尼/奥克


15

我已经训练了两个模型(使用h2o AutoML的二进制分类器),我想选择一个模型。我得到以下结果:

 model_id        auc     logloss    logloss_train   logloss_valid   gini_train  gini_valid

DL_grid_1   0.542694    0.287469         0.092717        0.211956     0.872932    0.312975
DL_grid_2   0.543685    0.251431         0.082616        0.186196     0.900955    0.312662

auclogloss列是交叉验证指标(交叉验证仅使用训练数据)。在..._train..._valid指标分别由通过模型运行训练和验证指标发现。我想使用logloss_validgini_valid选择最佳模型。

模型1具有更好的基尼系数(即更好的AUC),而模型2具有更好的对数损失。我的问题是选择哪一个我认为是问题,使用基尼(AUC)或对数损失作为决策指标的优点/缺点是什么?


1
该视频很好地解释了如果您对概率而不是分类感兴趣,为什么首选logloss。注意,对于二进制分类,logloss等于brier分数。

Answers:


11

尽管针对具有不同决策阈值的二进制分类计算了AUC,但logloss实际上考虑了分类的“确定性”。

因此,据我所知,对数丢失在概念上超出了AUC,并且在数据不平衡的情况下或在错误成本分配不均的情况下(例如,检测致命疾病)尤其重要。

除了这个非常基本的答案之外,您可能还想看看在二进制分类问题中优化auc vs logloss

最近的问题中讨论了对数损失计算和基本概念的简单示例,scikit-learn中的数损失函数返回不同的值

另外,在stackoverflow中提出了一个非常好的观点

必须了解AUC ROC与“点式”度量标准(例如准确性/精度等)之间的关键区别。ROC是阈值的函数。给定一个模型(分类器),该模型输出属于每个类别的概率,我们通常将元素分类为支持程度最高的类别。但是,有时我们可以通过更改此规则并要求一个支持比另一个支持大2倍来将其实际分类为给定类别,从而获得更好的分数。对于不平衡的数据集通常是这样。通过这种方式,您实际上是在修改学习的类的先验知识,以更好地适应您的数据。ROC观察“如果将该阈值更改为所有可能的值会发生什么”,然后AUC ROC计算该曲线的积分。


您的第一个链接包含“ AUC最大限度地提高了模型区分类的能力,而logloss则惩罚了实际概率与估计概率之间的差异”,因此,我基本上是在问如何在这两个目标之间进行选择?如果我直接使用模型的“概率”输出,是否应该优化对数损失(然后可能还要进行概率校准),就像我实际上将其用作分类器来做出艰难的决定那样吗?我应该和AUC一起去吗?

2
如果您只是在乎一个正确或错误的决定->使用AUC-如果您在乎是多少“正确”或“错误”->使用对数损失
Nikolas Rieble

性能度量的任何其他选择都不能一概而论,而是取决于域/应用程序。
Nikolas Rieble,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.