机器学习分类器评价指标详解(Precision, Recall, PR, ROC, AUC等)(一)

这篇具有很好参考价值的文章主要介绍了机器学习分类器评价指标详解(Precision, Recall, PR, ROC, AUC等)(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为了系统性地理解机器学习模型的不同评价指标及其之间的关系,我们将从其定义出发,探究其物理含义及彼此之间的联系,并从数学上给出相应的公式推导,以方便后续用到时复习理解。由于篇幅较长,因此将其分为两篇,这是第一部分,第二部分参见:机器学习分类器评价指标详解(Precision, Recall, PR, ROC, AUC等)(二)

那我们开始吧,

为了判断学习器的好坏,需要对其进行性能评估,而进行性能评估就需要评价标准,针对学习器类型的不同,评价指标也不相同,一般而言,回归任务的评价指标是均方误差,其公式为:

而平时我们见到更多的是分类任务的学习模型,所以下面我们主要讨论分类任务中常见的性能度量指标 。

为了讨论的简单,我们以二分类任务为例,给定一个二分类分类器,其对于测试样本的分类结果会出现四种情况:

将正类分为正类,将正类分为负类;

将负类分为正类,将负类分为负类。

如果我们把上述四种情况统一到一个矩阵中就是所谓的混淆矩阵,如下:

预测类别 Prediction Label

正类

负类

真正标签

True Label

正类

真正例 (True Positive, TP)

假负例 (False Negative, FN)

负类

假正例 (False Positive, FP)

真负例 (True Negative, TN)

根据这个矩阵,可以衍生出若干有不同针对性的度量指标,分别介绍如下:

1.正确率(Accuracy)

其定义为

precision recall,机器学习,机器学习,人工智能

由其定义可知,正确率考察的是分类器的整体分类性能,也即是正确分类的样本数占总样本数的比例。虽然其使用率很高,但是当正负样本不均衡的时候,该指标将失去其有效力。比如,在测试样本中,90%的样本都是正样本,那我们可以把所有样本都预测为正样本,从而轻松得到90%的正确率,然而这种分类器是没有任何意义的。

这就说明了:由于样本不平衡的问题,导致了得到的高准确率结果含有很大的水分。即如果样本不平衡,准确率就会失效。

正因为如此,也就衍生出了其它两种指标:精准率和召回率。

2.精准率(Precision)

又称查准率,其定义为

precision recall,机器学习,机器学习,人工智能

精准率是针对预测结果而言的 (这一点对于理解其本身的含义很重要),

根据其定义可知,精准率考察的是在所有预测为正类的样本中真正为正类的概率,也即在预测为正类的样本中,有多大把握可以预测正确,或者说在找到的所有正类中,有多少是准确的(也即为何叫查准率)。由此也可以看到,它是针对预测结果(分母)进行评价的。

虽然精准率和准确率这两个词很近,但是却是完全不同的含义。精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

与此同时,可能我们不仅仅关心查找中有多少正确的,我们还关心在所有正类中有多少被找出来了,即查得全不全,该指标即是查全率。

3.召回率(Recall)

又称查全率,其定义为

precision recall,机器学习,机器学习,人工智能

根据其分母(TP+FN等于所有正样本的数量)可知,它是针对原样本而言的。其是指在实际为正的样本中被预测为正类的概率。

之所以要关心查得全不全,是因为有时候我们更关注有多少我们关心的样本被漏掉了。比如在重大疾病的筛查中,我们不希望漏查一个有疾病的病人,也即是我们想要把所有的病人预测为病人,哪怕这样会把健康的人错误地预测为病人,这就类似于:宁可错杀一千,也不可放过一个。

这也反映出查准率和查全率是一对矛盾的度量。 一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。比如,我们关注的病人,即把病人看作正类。如果我们想把所有的病人尽可能都找到(查全率高),那么就会造成更多的健康人被错误地判断为病人(错误的正类,也即是FP增大,而且随着查找的进行,FP增大的速度要大于TP增加的速度,越到后面找出病人越难,因为这些病人的病症可能比较轻,而有些健康人可能伴有这类疾病的相似症状,导致大量的健康人被误判,而只能找到少量病人。也即,FP的增加速度远大于TP的增加速度,所以precision会下降;反之,如果我们追求的是在我们诊断为病人的样本中,真正的病人尽可能的多(也即查准率高),那么我们可以选择把最有把握的(病症最明显的)那些患者判断为病人,但是,同时,我们就会漏掉一些病症没有那么明显的真正的病人,导致TP减少,而TP+FN也即总得正类样本(真正的病人)数不变,所以recall会降低。

只有在少数简单的任务中才能同时取得较高的查准率与查全率,这也是为什么我们平时看到的PR曲线会是如下形状。

4.PR曲线

假如有一个PR曲线的示例图,如下所示,其横坐标为recall,纵坐标为precision。

precision recall,机器学习,机器学习,人工智能

图1:PR曲线

 我们先来说一下这个曲线是如何得到的。

给定了分类器的分类结果,对于非离散型的分类器(离散型的分类器是指直接给出正负类分类结果的分类器,如SVM,决策树,至于离散型的分类器该如何画PR曲线会在后面给出),每个样本都会得到一个概率值,该概率值表示分类器将其分为正类的概率,也可以理解为分类器的自信度,也即是分类器有多大的把握将其分为正类。这一点也比较重要,即该概率是指分类器将样本分为正类的概率。我们首先对预测结果的概率值按照降序顺序对样本进行排序,则排在最前面的其概率值最大,也即分类器认为其是最可能的正类样本。按照此样本顺序,逐个把样本作为正类进行预测,正样本个数是逐渐在累加的。每换一个样本(就得到分类器的一次分类结果),就能得到PR曲线上的一个点。以查全率为横坐标,查准率为纵坐标,遍历完所有的样本,就可以得到整个PR曲线。

这里有一点需要注意,为什么要首先对样本进行排序?从上述过程我们可以知道,其类似于描点作图法,如果我们不排序,也可以得到最终的PR曲线。但是,如果不排序,就需要使用不同的策略,-概率值大于阈值的分为正类,概率值低于阈值的分为负类,此处的阈值就是指当前样本对应的概率值。我们需要对样本的概率值进行两两比较来判断类别,每拿到一个概率值,需要跟其他概率一一对比,也即要用两层循环才能完成所有值的对比,其复杂度为,但是排序之后,就不需要对概率值进行比较,只需要从前往后逐个将样本分为正样本,所以只需要遍历一次即可,复杂度为 ,不过,排序的复杂度为 ,所以排序之后,作图的整体复杂度为 。这就是为什么要先进行排序

PR曲线直观地显示出学习器在样本总体上的查全率、 查准率。在进行比较时,若一个分类器的PR曲线被另一个分类器的曲线完全"包住" , 则可断言后者的性能优于前者,如图1中,分类器 A 的性能优于分类器 C; 如果两个分类器的 PR 曲线发生了交叉,如图1中的 A 与 B ,则难以一般性地断言两者孰优孰劣。只能在具体的查准率或查全率条件下进行比较然而,在很多情形下,人们往往仍希望把分类器 A 与 B 比出个高低。 这时一个比较合理的判据是比较 PR 曲线节面积的大小,它在一定程度上表征了分类器在查准率和查全率上取得相对"双高"的比例。但这个值不太容易估算,因此人们设计了一些综合考虑查准率、查全率的性能度量。

"平衡点 " (Break-Event Point,简称 BEP)就是这样一个度量,它是" 查准率=查全率"时的取值。例如图1中分类器 C 的 BEP 是 0.64,而基于 BEP的比较,可认为学习器A优于B。

但是平衡点过于简单,使用的不多,更常用的是F1 score,其定义如下

precision recall,机器学习,机器学习,人工智能

其中P表示Precision, R表示Recall,F1 score是二者的调和平均。

在一些应用中,对查准率和查全率的重视程度有所不同。例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。F1 度量的一般形式是,它能让我们表达出对查准率/查全率的不同偏好,其定义为

precision recall,机器学习,机器学习,人工智能

其中 度量了查全率对查准率的相对重要性。

时退化为标准的F1,时更侧重于查全率,时更侧重于查准率。

是precision与recall的加权调和平均,F1是调和平均,具体公式如下:

precision recall,机器学习,机器学习,人工智能

 表示recall是precision的倍那么重要,

 precision recall,机器学习,机器学习,人工智能

precision recall,机器学习,机器学习,人工智能

 与算术平均 precision recall,机器学习,机器学习,人工智能与几何平均相比,调和平均更重视较小值。

此外,还可以将与假设检验中的两类错误联系在一起,在假设检验中,一般会把我们关心的对象的对立面作为原假设,比如在做显著性假设检验时,一般原假设为没有显著性差别。

所以,如果我们关心的是正类,那么原假设就是负类。

假设检验中的第一类错误是,当原假设错误时,却接受原假设,即取伪

第二类错误是,当原假设正确时,却拒绝原假设,即取真

那么,结合混淆矩阵可知,

FP 为第一类错误,即把负类(即原假设是负类正确)分为正类(拒绝了原假设)

FN 为第二类错误。即把正类(即原假设是负类错误)分为负类(接收了原假设)

证明如下:

因为

precision recall,机器学习,机器学习,人工智能

precision recall,机器学习,机器学习,人工智能

所以

precision recall,机器学习,机器学习,人工智能

注意到PR曲线的两个指标都聚焦于正例(precision与recall的分子都是TP),所以当遇到更需要关注正类样本,而正样本的数量有比较少的任务时,适合使用PR曲线。

与此同时,PR曲线的缺点是当正负类样本不均衡,或者样本的正负分布发生较大变化时PR曲线会很不稳定,而针对此正负样本不均衡的问题,或者想同时关注正类和负类样本时,我们可以使用ROC曲线。

5.ROC曲线

ROC (Receiver Operating Characteristic) 曲线,又称受试者操作特征曲线。该曲线最早应用于二战中雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC 曲线也是基于混淆矩阵得出的。与PR不同的是,ROC曲线使用的指标是真正率(True positive rate, TPR)与假正率 (False positive rate, FPR),其横坐标为FPR, 纵坐标为TPR.

precision recall,机器学习,机器学习,人工智能

precision recall,机器学习,机器学习,人工智能

真正率又称为敏感度(sensitivity),假正率又可以看作(1-特异度(specificity)),

precision recall,机器学习,机器学习,人工智能

precision recall,机器学习,机器学习,人工智能

特异度可以看作关注负类时的敏感度。

ROC曲线的形状大概为图2中所示。

precision recall,机器学习,机器学习,人工智能

 图2:ROC曲线

图中虚线表示随机猜测,所以正常情况下ROC曲线都处于虚线的左上方。

ROC曲线的画法跟PR曲线类似,也是先对分类结果中的样本进行降序排序,然后依次将样本分为正类,从前往后遍历一次所有的样本,最终得到ROC曲线。该过程也可以理解为依次使用从高到低的概率值作为阈值,大于阈值的样本分为正类,小于阈值的样本分为负类。遍历完所有阈值最终得到整个ROC曲线。不过值得注意的是,如果遇到相同概率的样本,也即前后若干个概率值相同,如果我们还是以重复的概率值作为阈值进行计算,那么等同于重复前面的工作,得到的也是ROC曲线上的点,此时,为了避免重复,遇到相同阈值时,我们直接将其对应的样本分为正样本(也即加入逐个扩大的正样本集合),重复此过程,直至遇到与该阈值不同的概率值。

为了更加直观地理解该过程,下图3是一个具体的例子,共有20个样本,其中10个正类,10个负类,左侧是对应的ROC曲线,图中标记点旁边的数值表示使用的阈值,右侧是样本的真实标签(Class列)与分类器给出的预测概率(Score列)。

precision recall,机器学习,机器学习,人工智能

 图3

由此我们可知,如果我们选择的阈值非常大,比如正无穷,因为我们关注点的是分类器将样本分为正类的概率,那么如果阈值为正无穷,所有的样本将被分为负类,所以TP=FP=0, 那么TPR与FPR也都等于0,此时对应着ROC曲线上的原点(0,0)。相反,如果我们的阈值非常小,比如为负无穷,那么所有的样本将被分为正类,则FN=TN=0, 那么,TPR=FPR=1, 此时对应着ROC曲线右上方的(1,1)点。还有一个比较特殊的点(0,1),该点意味着,FPR=0, TPR=1, 也即是FP=0, FN=0.

即所有的样本都分对了,所以该点是完美分类点。所以ROC曲线越靠近这个点表示分类器的分类效果越好。

还有一种更直观地绘制ROC曲线的方法。首先,根据样本标签统计出 正负样本的数量,假设正样本数量为P,负样本数量为N;接下来,把横轴的刻度间隔设置为1/N,纵轴的刻度间隔设置为1/P;再根据模型输出的预测概率对样本进行排序(从高到低);依次遍历样本,同时从零点开始绘制ROC曲线,每遇到一个正样本就沿纵轴方向绘制一个刻度间隔的曲线,每遇到一个负样本就沿横轴方向绘制一个刻度间隔的曲线,直到遍历完所有样本,曲线最终停在(1,1)这个点,整个ROC曲线绘制完成。

我们注意到TPR与FPR的分母,TP+FN=所有的正类样本总数, FP+TN=所有的负类样本总数。

也即,TPR与FPR都是针对实际样本的,而不是针对分类结果的(其分母是常数,而如果是针对分类结果,其分母会变化,如precision的分母)。所以即使正负类的数量各自发生了改变,也不会互相影响。也就是说,即使正例与负例的比例发生了很大变化,ROC曲线也不会产生大的变化,而像Precision使用的TP和FP就会随着正负类样本比例的变化而变化,即易受类别分布改变的影响。也就是说ROC曲线对样本不均衡比价鲁棒,这也是ROC曲线优于PR曲线的地方。如下图4所示,

precision recall,机器学习,机器学习,人工智能

图4 此处实线和虚线表示两个不同的分类器 

图中负例增加了10倍,ROC曲线没有改变,而PR曲线则变了很多。

文献[1]中说当正负类样本比例发生变化时,ROC曲线不变(identical),我猜测应该是没有太大变化,而不是一点都不变,根据TPR与FPR的定义,

precision recall,机器学习,机器学习,人工智能

precision recall,机器学习,机器学习,人工智能

就拿图4中的例子来说,负样本增加10倍,正样本不变

那么TP, FN都不会变,所以TPR是不变的,但是,并不能保证FP与TN会以相同的倍数变化,也许二者变化的倍数很近(比如新增的样本与原来的样本分布相同),但是变化的倍数应该不会完全一致,所以我猜测FPR会发生微小的变化,但是不影响ROC的大体走势。

大多数情况下这种稳定性被认为是优点,但是有时也是缺点,因为负样本增多,FP也会成倍增加,如果是比较关心正类样本的准率率的话,那么就会导致precision(precision=TP/(TP+FP))下降(此时PR曲线会更合适刻画这种变化)。

第一部分就先到这吧,太长了容易看困,哈哈哈

如果还不困,第二部分由此进入:机器学习分类器评价指标详解(Precision, Recall, PR, ROC, AUC等)(二)

参考:

[1] ROC Graphs: Notes and Practical Considerations for Data Mining Researchers

[2] 周志华《机器学习》

[3] Probabilistic interpretation of AUC | 0-fold Cross-Validation

[4] Measuring classifier performance: a coherent alternative to the area under the ROC curve

[5] Probabilistic output for SVM and comparisons to regularized likelihood methods

[6] A Note on Platt’s Probabilistic Outputs for Support Vector Machines

[7] LIBSVM: A Library for Support Vector Machines文章来源地址https://www.toymoban.com/news/detail-757951.html

到了这里,关于机器学习分类器评价指标详解(Precision, Recall, PR, ROC, AUC等)(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在分类任务中准确率(accuracy)、精确率(precision)、召回率(recall)和 F1 分数是常用的性能指标,如何在python中使用呢?

    在机器学习和数据科学中,准确率(accuracy)、精确率(precision)、召回率(recall)和 F1 分数是常用的性能指标,用于评估分类模型的性能。 准确率是模型预测正确的样本数占总样本数的比例。 精确率是指在预测为正的样本中,实际为正的比例。它关注的是预测为正的样本

    2024年01月19日
    浏览(33)
  • YOLO等目标检测模型的非极大值抑制NMS和评价指标(Acc, Precision, Recall, AP, mAP, RoI)、YOLOv5中mAP@0.5与mAP@0.5:0.95的含义

    YOLOv5正负样本定义 yolov5输出有3个预测分支,每个分支的每个网格有3个anchor与之对应。 没有采用IOU最大的匹配方法,而是通过计算该bounding-box和当前层的anchor的宽高比,如果最大比例大于4(设定阈值),则比例过大,则说明匹配度不高,将该bbox过滤,在当前层认为是背景

    2024年02月03日
    浏览(37)
  • 目标检测评估指标mAP:从Precision,Recall,到AP50-95

    True Positive 满足以下三个条件被看做是TP         1. 置信度大于阈值(类别有阈值,IoU判断这个bouding box是否合适也有阈值)         2. 预测类型与标签类型相匹配(类别预测对了)         3. 预测的Bouding Box和Ground Truth的IoU大于阈值(框 打对了)。 当存在多个满足条件的预

    2024年02月09日
    浏览(33)
  • YOLOv8性能评估指标->mAP、Precision、Recall、FPS、IoU

    开始讲解之前推荐一下我的专栏,本专栏的内容支持(分类、检测、分割、追踪、关键点检测),专栏目前为限时折扣, 欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。   专栏目录: YOLOv8改进有效系列目录 | 包含卷积、主

    2024年02月03日
    浏览(34)
  • 【机器学习】全网最全模型评价指标(性能指标、YOLOv5训练结果分析、轻量化指标、混淆矩阵详解)【基础收藏】

    在目标检测任务中,我们常用的评价指标一般有两种,一种是使用Pascal VOC的评价指标,一种是更加严格的COCO评价指标,一般后者会更常用点。 如何判断一个检测结果是否正确。目前最常用的方式就是去计算检测框与真实框的IOU,然后 根据IOU去判别两个框是否匹配 。 常见指

    2024年02月04日
    浏览(35)
  • YOLO 模型的评估指标——IOU、Precision、Recall、F1-score、mAP

    YOLO是最先进的目标检测模型之一。目标检测问题相比分类问题要更加复杂,因为目标检测不仅要把类别预测正确,还要预测出这个类别具体在哪个位置。 我将目标识别的评估指标总结为两部分,一部分为预测框的预测指标,另一部分为分类预测指标。 预测框的准确率用IOU来

    2024年02月04日
    浏览(38)
  • 分类模型评估(混淆矩阵, precision, recall, f1-score)的原理和Python实现

    当我们已经获取到一个分类模型的预测值,可以通过不同指标来进行评估。 往往衡量二分类模型是基于以下的混淆矩阵概念: True Positive:真实值为正、预测值为正(真阳性) False Positive:真实值为负、预测值为正(假阳性) False Negative:真实值为正、预测值为负(假阴性)

    2024年02月04日
    浏览(38)
  • python:多分类-计算混淆矩阵confusion_matrix、precision、recall、f1-score分数

    多分类,计算混淆矩阵confusion_matrix,以及accuracy、precision、recall、f1-score分数。 1)使用sklearn计算并画出 混淆矩阵(confusion_matrix) ; 2)使用sklearn计算 accuracy(accuracy_score) ; 3)使用sklearn计算多分类的 precision、recall、f1-score分数 。以及计算每个类别的precision、recall、f1-

    2024年02月06日
    浏览(32)
  • 机器学习回归任务指标评价及Sklearn神经网络模型评价实践

    机器学习回归模型评价是指对回归模型的性能进行评估,以便选择最佳的回归模型。其中,MAE、MSE、RMSE 用于衡量模型预测值与真实值之间的误差大小,R² 用于衡量模型对数据的拟合程度。在实际应用中,我们可以使用这些指标来评估回归模型的性能,并对模型进行优化。

    2024年02月05日
    浏览(36)
  • 机器学习算法基础--聚类问题的评价指标

    2.1.兰德系数(RI)计算方法   首先我们定义两两配对变量a和b:   a:数据集的样本对既属于相同簇C也属于相同簇K的个数   b:数据集的样本对不属于相同簇C也不属于相同簇K的个数   比如对于如下的真实簇和预测簇向量:     真实簇向量:[ 0, 0, 0, 1, 1, 1 ]     

    2024年02月07日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包