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

2024-06-21 09:38

本文主要是介绍为机器学习模型选择正确的度量评估(第二部分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“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


这篇关于为机器学习模型选择正确的度量评估(第二部分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080866

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]