为机器学习模型选择正确的度量评估(第二部分)

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Alvira Swalin

编译:ronghuaiyang

前戏

今天是第二部分,分类的度量。


本系列的第二部分将重点讨论分类指标

在第一部分中,我们讨论了回归中使用的一些重要指标、它们的优缺点和用例。这一部分将着重于分类中常用的度量标准,为什么我们应该在上下文中选择其中的一些。

640?wx_fmt=png

定义

在讨论每种方法的优缺点之前,让我们首先了解分类问题中使用的基本术语。如果你已经熟悉这些术语,可以跳过本节。

640?wx_fmt=png

召回率或敏感性或TPR(真阳率):在全部真实阳性中正确识别为阳性的项目数量- TP/(TP+FN)

特异性或TNR(真阴率):在总的阴性中正确识别为阴性的项目数量- TN/(TN+FP)

精度:在确定为阳性的总项目中,正确确定为阳性的项目数量- TP/(TP+FP)

假阳率或I型错误:在全部真阴性中错误识别为阳性的项目数量- FP/(FP+TN)

假阴率或II类错误:在全部真阳性中错误识别为阴性的项目数量- FN/(FN+TP)

640?wx_fmt=jpeg

  • 混淆矩阵

640?wx_fmt=png

  • F1分数:是给出的精度和召回率的调和平均值

    F1 = 2PrecisionRecall/(Precision + Recall)

  • 准确性:分类正确总项目的百分比- (TP+TN)/(N+P)

ROC-AUC Score

ROC-AUC分数的概率解释是,如果你随机选择一个正样本和一个负样本,根据分类器,正样本排在负样本前面的概率由AUC给出。在这里,排序是根据预测值的顺序确定的。

640?wx_fmt=png

在数学上,它是由灵敏度曲线(TPR) vs FPR(1-specificity)下的面积来计算的。理想情况下,我们希望有高敏感性和高特异性,但在现实场景中,敏感性和特异性之间总是存在权衡。


ROC-AUC的一些重要特征是:

  • 取值范围从0到1。而对于平衡数据,随机分类器的auc评分为0.5

  • ROC-AUC评分独立于设定的分类阈值,因为它只考虑每个预测的秩,不考虑其绝对值。F1分数不一样,在概率输出的情况下,它需要一个阈值。

Log-Loss

Log-loss是一种精度度量,它结合了概率置信度的思想,由以下二元类的表达式给出:

640?wx_fmt=png

它考虑到你的预测的不确定性基于它与实际标签的差异。在最坏的情况下,假设所有观测值都是0.5。所以log-loss就变成-log(0.5)= 0.69。因此,我们可以说,考虑到实际概率,任何大于0.6的模型都是非常糟糕的。

案例1

Log-loss 和 ROC 和 F1的对比

640?wx_fmt=png

考虑情形1(平衡数据),看起来模型1在预测绝对概率方面做得更好,而模型2在根据观测值的真实标签对其进行排序方面做得最好。让我们用实际分数来验证:

640?wx_fmt=png

如果考虑log-loss,模型2给出log-loss的高值是最糟糕的,因为绝对概率与实际标签有很大的差异。但这与F1和AUC评分完全不一致,其中模型2的准确率为100%。此外,你还需要注意,随着阈值的不同,F1分数也在变化,默认阈值0.5更倾向于模型1而不是模型2。

由以上例子得出的推论(平衡数据集):

如果你关心的是绝对概率差,那就用log-loss吧

  • 如果你只关心最后的类预测,你不想调整阈值,去AUC评分

  • f1分数对阈值很敏感,在比较模型之前,你需要先对其进行优化

案例2

如何处理不均衡数据集?

640?wx_fmt=png

这两种模型的唯一区别是它们对观测结果13和14的预测。模型1是在样本13(标签为0)的分类上做的更好,而模型2在样本14(标签为1)的分类上做的更好。我们的目标是看哪个模型实际捕获的不同分类不平衡类更好(样本很少的类别,这里是标签1)。在欺诈检测/垃圾邮件检测等问题,正样本很少,我们希望我们的模型能够正确地预测阳性类,因此我们有时会更喜欢那些能够对这些阳性标签进行分类的模型。

640?wx_fmt=png

显然在这种情况下log-loss是失败的,因为根据log-loss,这两个模型的性能是相同的。这是因为log-loss函数是对称的,不区分类。

F1评分和ROC-AUC评分均优于模型2和模型1。我们可以用这两种方法来处理类不平衡。但我们还需要进一步研究,看看他们对待类别不平衡的方式有何不同。

640?wx_fmt=png

在前面的例子中,我们看到正样本的标签很少。在第二个例子中,负样本标签很少。让我们看看F1分数和ROC-AUC如何区分这两种情况。

640?wx_fmt=png

ROC-AUC score处理少量负标签的方式与处理少量正标签的方式相同。这里需要注意的一件有趣的事情是,F1分数对于模型3和模型4几乎是相同的,因为正标签的数量很大,它只关心正标签的错误分类。

从上面的例子中得出的推论:

  • 如果你关系的是一个数量较少的类,而与它是正的还是负的无关,那么选择ROC-AUC分数。

什么时候用F1比ROC-AUC好?

当你的正类的数量很少,那么F1分数更有意义。这是欺诈检测中常见的问题,因为正面标签很少。我们可以通过下面的例子来理解这个语句。

我们可以看到,模型(1)在10K大小的数据集中预测100个真实阳性数据中的5个阳性,而另一个模型(2)预测100个真实阳性数据中的90个阳性。显然,在这种情况下,模型(2)比模型(1)做得更好。让我们看看F1分数和ROC-AUC分数是否能够捕捉到这种差异。

模型(1)F1评分= 2(1)(0.1)/1.1 = 0.095

模型(2)F1评分= 2(1)(0.9)/1.9 = 0.947

是的,F1分数的差异反映了模型的性能。

模型(1)的ROC-AUC = 0.5

模型(2)的ROC-AUC = 0.93

ROC-AUC也给模型1打了一个不错的分数,但这并不能很好地反映模型1的性能。因此,对于不平衡的数据集,在选择ROC-AUC时要非常小心。

对于多分类你应该用什么样的度量?

我们还有另外三种类型的非二进制分类:

多类:分类任务有两个以上的类,使输入被分类为其中一个类,并且只能分为一个类。示例:将一组水果图像分成以下任意一类—苹果、香蕉和橙子。

多标签:将样本分类为一组目标标签。例如:将博客标记为一个或多个主题,如技术、宗教、政治等。标签是孤立的,它们之间的关系并不重要。

层次分类:每个类别都可以与类似的类别分组在一起,创建元类,这些元类又可以分组,直到我们到达根级别(包含所有数据的集合)。例如文本分类和物体分类。有关更多细节,请参考这个博客

在本博客中,我们将只讨论第一类。

640?wx_fmt=png

正如你在上表中所看到的,我们大致有两种指标类型—微观平均和宏观平均,我们将讨论每种指标的优缺点。多类最常用的度量标准是F1分数、平均精度、log损失。目前还没有完善的针对多类的ROC-AUC评分。

多类的log-loss定义为:

640?wx_fmt=png

在微观平均法中,将不同集合的系统的真阳性、假阳性和假阴性相加,然后应用它们得到统计数据。

在宏观平均中,取系统在不同集合上的精度和召回率的平均值


如果存在类不平衡问题,最好使用微观平均值

640?wx_fmt=png— END—

英文原文:https://medium.com/usf-msds/choosing-the-right-metric-for-evaluating-machine-learning-models-part-2-86d5649a5428

640?wx_fmt=jpeg

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧640?wx_fmt=gif


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值