比较模型之间的AUC,对数损失和准确性得分

时间:2019-10-29 15:04:03

标签: machine-learning classification loss auc

在为test set运行6个模型之后,我在binary classification problem上具有以下评估指标:

  accuracy logloss   AUC
1   19%      0.45   0.54
2   67%      0.62   0.67
3   66%      0.63   0.68
4   67%      0.62   0.66
5   63%      0.61   0.66
6   65%      0.68   0.42

我有以下问题:

  • 如何建模1logloss而言是最好的(logloss最接近0),因为它表现最差(就accuracy而言) 。这是什么意思?
  • 模型6的{​​{1}}得分比例如如果模型AUC具有更好的5,则模型6。这是什么意思?
  • 有没有办法说这6个模型中最好的一个?

1 个答案:

答案 0 :(得分:4)

非常简短,带有链接(因为其中的一部分已经在其他地方讨论过)...

  

如何建模1logloss而言是最好的(logloss最接近0),因为它表现最差(就accuracy而言) 。那是什么意思?

尽管损失是准确性的代表(反之亦然),但在这种情况下,它并不是非常可靠的。仔细研究准确度和损失之间的具体机制可能很有用;考虑以下SO线程(免责声明:答案是我的):

详细说明:

假设样本带有真实标签y=1,来自分类器p=0.51的概率预测和决策阈值为0.5(即,对于p>0.5,我们将分类为1 ,否则为0),则该样本对准确性的贡献为1/n(即正数),而损失为

-log(p) = -log(0.51) = 0.6733446

现在,再次假设另一个样本为真y=1,但现在的概率预测为p=0.99;对精度的贡献将是相同的,而现在的损失将是:

-log(p) = -log(0.99) = 0.01005034

因此,对于两个都正确分类的样本(即,它们以完全相同的数量对准确度有积极贡献),我们在相应损失上有相当大的差异...

尽管您在此处呈现的内容看起来很极端,但不难想象这样一种情况:其中y=1的许多样本将位于p=0.49的周围,因此给出了一个 低损耗,但对准确性的贡献却为零...

  

模型6的{​​{1}}得分比例如如果模型AUC具有更好的5,则模型6。那是什么意思?

这个比较容易。

至少根据我的经验,大多数机器学习从业者认为AUC评分与实际操作有所不同:常见(不幸的是)用法与其他任何较高级别的用法相同,更好的指标(如准确性)自然会导致您表达自己的困惑。

事实是,粗略地说,AUC衡量在所有可能的决策阈值上平均的二元分类器的性能。因此,AUC并没有实际衡量特定部署模型(包括选定的决策阈值)的性能,而是模型的在所有阈值上的平均性能(其中绝大多数是当然对您不感兴趣,因为它们将永远不会被使用。

由于这个原因,AUC开始受到文学界的严重批评(请不要误解-对 ROC曲线本身的分析非常有用,也很有用);强烈建议您阅读Wikipedia entry及其中提供的参考文献:

  

因此,AUC量度的实用价值受到质疑,这增加了AUC可能在机器学习分类准确性比较中实际引入比分辨率更多的不确定性的可能性。

     

[...]

     

最近对ROC AUC问题的一种解释是,将ROC曲线减小为一个数字会忽略以下事实:它是关于不同系统或绘制的性能点之间的折衷,而不是单个系统的性能

强调我的名字-另请参见On the dangers of AUC ...

简单建议:不要使用

  

有没有办法说这6个模型中哪一个最好?

取决于“最佳”的确切定义;如果“最佳”的意思是我要解决的业务问题的最佳(不是ML 从业者的非理性定义),那么它是表现最好的那个根据适合于您自己定义的问题的业务指标。这永远不会是AUC,通常也不是损失...