首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习模型的度量选择(下)

机器学习模型的度量选择(下)

作者头像
磐创AI
发布2020-07-15 11:11:48
7180
发布2020-07-15 11:11:48
举报

磐创AI分享

作者 | Alvira Swalin

编译 | VK

来源 | Medium

本系列的第二部分主要讨论分类度量

在第一篇中,我们讨论了回归中使用的一些重要指标、它们的优缺点以及用例。这一部分将集中讨论分类中常用的度量,以及在具体的背景中应该选择哪种。

定义

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

  • 「召回率或TPR(真正例率)」:所有正例中正确识别为正例的项目数=TP/(TP+FN)
  • 「特异性或TNR(真反例率)」:所有反例中正确识别为反例的项目数=TN/(TN+FP)
  • 「精确度」:在确定为正例的项目中,正确确定为正例的项目数=TP/(TP+FP)
  • 「假正例率或I型错误」:所有反例中被错误识别为正例的项目数=FP/(FP+TN)
  • 「假反例率或II型错误」:所有正例中被错误识别为反例的项目数=FN/(FN+TP)
  • 「混淆矩阵」
  • 「F1度量」:精确性和召回率的调和平均值。F1 = 2*Precision*Recall/(Precision + Recall)
  • 「准确率」:正确分类的项目总数百分比 (TP+TN)/(N+P)
ROC-AUC评分

ROC-AUC得分的概率解释是,如果随机选择一个正案例和一个负案例,根据分类器,正案例高于负案例的概率由AUC给出。

从数学上讲,它是由灵敏度曲线(TPR)下的面积计算的。

FPR(1-特异性)。理想情况下,我们希望具有高灵敏度和高特异度,但在实际情况下,敏感性和特异度之间始终存在权衡。

ROC-AUC的一些重要特征是

  • 该值的范围可以是0到1。然而,平衡数据的随机分类器的auc得分是0.5
  • ROC-AUC评分与分类阈值集无关。F1分数不一样,在概率输出的情况下,F1分数需要一个阈值确定
Log损失

对数损失是一种精度测量,它结合了以下二进制类表达式给出的概率置信度的概念:

它考虑了你的预测的不确定性,基于它与实际标签的差异。在最坏的情况下,假设你预测的概率都是0.5。因此,对数损失将变成-log(0.5)=0.69。

因此,我们可以说,考虑到实际的概率,任何高于0.6的都是一个非常糟糕的模型。

案例1

Log损失与ROC和F1度量的比较

以案例1为例,模型1在预测绝对概率方面做得更好,而模型2预测的概率值是有序递增的。让我们用实际分数来验证一下:

如果考虑到log丢失,模型2给出的log损失最高,因为绝对概率与实际标签有很大差异。但这与F1和AUC评分完全不一致,根据该评分模型2具有100%的精确率。

此外,你可以注意,对于不同的阈值,F1得分会变化,在默认阈值为0.5时,F1更喜欢模型1而不是模型2。

从上述示例得出的推论:

  • 如果你关心绝对概率差,就用对数损失
  • 如果你只关心某一个类的预测,而不想调整阈值,那么使用AUC score
  • F1分数对阈值敏感,在比较模型之前,你需要先调整它

案例2

他们如何处理类别不平衡的情况?

这两个模型的唯一不同之处是它们对观测13和14的预测。模型1在对观测值13(标签0)进行分类方面做得更好,而模型2在对观测值14(标签1)进行分类方面做得更好。

我们的目标是看哪个模型能更好地捕捉到不平衡类分类的差异(标签1数据量少)。在欺诈检测/垃圾邮件检测这样的问题中,正例的标签总是很少,我们希望我们的模型能够正确地预测正例,因此我们有时会更喜欢那些能够对这些正例进行正确分类的模型

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

F1度量和ROC-AUC评分在选择模型2方面均优于模型1。所以我们可以使用这两种方法来处理类不平衡。但我们必须进一步挖掘,看看他们对待类别不平衡的方式有哪些不同。

在第一个例子中,我们看到很少有正标签。在第二个例子中,几乎没有负标签。让我们看看F1度量和ROC-AUC如何区分这两种情况。

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

从以上例子得出的推论:

  • 如果你关心的是一个数量较少的类,并且不需要管它是正是负的,那么选择ROC-AUC分数。
你什么时候会选择F1度量而不是ROC-AUC?

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

例如,在大小为10K的数据集中,模型(1)预测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打了一个不错的分数,这并不是一个很好的性能指标。因此,对于不平衡的数据集,在选择roc-auc时要小心。

你应该使用哪种度量来进行多重分类?

我们还有三种类型的非二分类:

  • 「多类」:具有两个以上类的分类任务。示例:将一组水果图像分为以下任一类别:苹果、香蕉和桔子。
  • 「多标签」:将样本分类为一组目标标签。示例:将博客标记为一个或多个主题,如技术、宗教、政治等。标签是独立的,它们之间的关系并不重要。
  • 「层次结构」:每个类别都可以与类似的类别组合在一起,从而创建元类,这些元类又可以再次组合,直到我们到达根级别(包含所有数据的集合)。例子包括文本分类和物种分类。

在这个博客里,我们只讨论第一类。

正如你在上表中看到的,我们有两种类型的指标-微平均和宏平均,我们将讨论每种指标的利弊。多个类最常用的度量是F1度量、平均精度、log损失。目前还没有成熟的ROC-AUC多类评分。

多类的log损失定义为:

  • 在微平均法中,将系统中不同集合的真正例、假正例和假反例进行汇总,然后应用它们得到统计数据。
  • 在宏平均法中,取不同集合上系统的精度和召回率的平均值

「如果存在类别不平衡问题,则采用微平均法。」


参考:

  1. https://classeval.wordpress.com/simulation-analysis/roc-and-precision-recall-with-imbalanced-datasets/
  2. https://en.wikipedia.org/wiki/Precision_and_recall
  3. https://www.sciencedirect.com/science/article/pii/S0306457309000259
  4. https://stats.stackexchange.com/questions/11859/what-is-the-difference-between-multiclass-and-multilabel-problem
  5. https://datascience.stackexchange.com/questions/15989/micro-average-vs-macro-average-performance-in-a-multiclass-classification-settin/16001

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 磐创AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 磐创AI分享
  • 定义
    • ROC-AUC评分
      • Log损失
      • 案例1
        • Log损失与ROC和F1度量的比较
        • 案例2
          • 他们如何处理类别不平衡的情况?
            • 你什么时候会选择F1度量而不是ROC-AUC?
              • 你应该使用哪种度量来进行多重分类?
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档