如何通俗理解准确率、精确率、召回率、F1score、AUC、ROC

本文我会用最通俗的语言帮助大家快速理解并记住准确率、精确率、召回率、F1score,AUC、ROC以及特异度。

这些指标其实乍一看能知道都是什么,但是一用起来记不住定义

1.第一步 认识混淆矩阵

借用一下别人的图,这俩图说的是一个内容,大家稍微消化一下,右图中的reference是参考的意思,可以理解为实际值。

我们看一下定义

  • 真正类(True Positives, TP):模型正确预测为正类的正类样本数。
  • 假正类(False Positives, FP):模型错误预测为正类的负类样本数。
  • 真负类(True Negatives, TN):模型正确预测为负类的负类样本数。
  • 假负类(False Negatives, FN):模型错误预测为负类的正类样本数。

 这里的positive negative可以对应医院检查的阳性/阴性去理解,假负类就是本来人家是正类,你给人家预测成负类了,所以这个是负类不是真的,是假的,所以叫假负类,就比如你要检测别人是否患病,正类就是患病了,但是实际上人家患病了,预测成没患病,这个就是假的没患病,没给人家检测出来,是大问题。

2.准确率(Accuracy)

准确率是分类正确的样本数占总样本数的比例。它是最直观的性能指标。计算公式为:

像正的被预测成正的,负的被预测成负的,这就叫预测正确,分类正确,所以准确率就是这样,当然也可以写的正式一点

3.召回率(Recall)

        做机器学习的,肯定听过召回率,但是光听这个名字,别人谁能知道这是啥意思,所以要介绍它的另一个名字 <查全率>

        查找全面性的比率,强调的是模型识别目标类别的完整性。也就是说,它衡量的是在所有真实正类样本中,有多少被模型正确地识别出来了。

        英文是recall,我也不懂外国人怎么理解这个recall,如果直译,我是真的猜不透,除非看定义,看了也忘。所以用查全率去记忆,我举例子说:

1. 金融欺诈检测

在金融行业,检测欺诈行为是非常关键的任务。假设有一个模型用来识别信用卡交易中的欺诈行为。

  • 数据集:假设有1000次信用卡交易,其中有50次是欺诈交易。
  • 模型预测:模型成功识别出了45次欺诈交易,但漏掉了5次。
  • 查全率:查全率为

在这个例子中,查全率90%意味着模型能够捕捉到90%的欺诈交易,这对于防止经济损失非常重要。

2. 病毒检测

在计算机安全领域,病毒检测软件需要尽可能不漏掉任何一种病毒。

  • 数据集:假设有10000个文件,其中100个文件被感染了病毒。
  • 模型预测:模型检测到了95个被病毒感染的文件,但漏掉了5个。
  • 查全率:查全率为

查全率95%表示该病毒检测软件能有效识别大部分病毒,减少了系统受损的风险。

3. 搜索引擎优化

对于搜索引擎,提高相关结果的查全率是提升用户满意度的重要指标。

  • 数据集:假设用户搜索“健康饮食”,系统识别出100篇相关文章。
  • 模型预测:搜索引擎找到了80篇确实相关的文章,但错过了20篇高质量的相关文章。
  • 查全率:查全率为

查全率80%表明搜索引擎能够找到大部分相关文章,但仍有提升空间,以避免用户错过重要内容。

4. 产品缺陷检测

在制造业中,确保产品质量是极其重要的,查全率可以帮助评估缺陷检测系统的效果。

  • 数据集:假设有500个产品,其中有50个存在缺陷。
  • 模型预测:质量控制系统识别出了48个有缺陷的产品,漏掉了2个。
  • 查全率:查全率为

4.精确率 (Precision)

        精确率是在所有被模型预测为正类的样本中,实际上为正类的样本的比例,也称为查准率。这是一个衡量结果精确性的指标,特别用于关注正类预测的情况。计算公式为:

这个指标更关心正类

1. 邮件分类

对于企业来说,确保重要邮件不被错误分类为垃圾邮件非常关键。

  • 数据集:假设员工每天收到1000封邮件,其中100封是垃圾邮件。
  • 模型预测:垃圾邮件过滤系统标记了150封邮件为垃圾邮件。
  • 实际结果:其中只有90封真的是垃圾邮件,其他60封是误标的重要邮件。
  • 精确率:精确率为

        这里精确率60%意味着在所有标记为垃圾邮件的邮件中,只有60%实际上是垃圾邮件。较低的精确率可能导致重要信息的丢失。

2. 社交媒体内容审核

社交平台需要确保不适当的内容被有效移除,同时避免过度审查。

  • 数据集:假设有10000条用户发布的内容,其中500条含有不适当的内容。
  • 模型预测:内容审核算法标记了600条内容为不适当。
  • 实际结果:只有400条实际上是不适当的,200条是误标的。
  • 精确率:精确率为

        这个示例中,精确率66.67%说明审查系统虽然能够移除不少不适当内容,但也误伤了一些无害的发布,可能影响用户体验。

3. 医学影像诊断

        在医学影像中,高精确率意味着被诊断为疾病的患者确实患有该疾病,这对于避免不必要的治疗和焦虑至关重要。

  • 数据集:在1000个病例中,有200个病例实际患有某种疾病。
  • 模型预测:模型诊断出250个病例为疾病阳性。
  • 实际结果:其中只有180个病例确实患病,70个为误诊。
  • 精确率:精确率为

5. 召回率和精确率小结

作为两大常用的指标,试想什么任务里,召回率更重要,什么任务精确率更重要呢

5.1.召回率更重要的任务

  • 医疗诊断

    • 例子:癌症筛查、传染病检测。
    • 原因:在医疗场景中,漏诊(假阴性)可能会导致严重后果,因此宁愿多检测出一些假阳性(误诊),也不希望漏掉真正的患者。高召回率能够保证大多数真正的病例被检测到。
  • 欺诈检测

    • 例子:信用卡欺诈、保险欺诈。
    • 原因:漏掉真正的欺诈行为可能会导致巨大的财务损失,因此需要尽可能多地检测出潜在的欺诈行为,即使这可能会导致一些误报。
  • 安全监控

    • 例子:入侵检测、犯罪预测。
    • 原因:在安全领域,未能检测到威胁或入侵可能会导致安全事故或犯罪事件的发生,因此高召回率非常关键。

5.2 精确率更重要的任务 

  • 垃圾邮件过滤

    • 例子:电子邮件垃圾分类。
    • 原因:对于垃圾邮件过滤器来说,误将正常邮件标记为垃圾邮件(假阳性)会导致用户错过重要信息,因此精确率更为重要。
  • 广告推荐

    • 例子:定向广告推送。
    • 原因:广告商更希望他们的广告展示给确实对产品感兴趣的人,避免浪费广告资源和打扰不相关用户。因此,精确率需要较高。
  • 信息检索

    • 例子:搜索引擎、推荐系统。
    • 原因:搜索引擎和推荐系统需要尽可能为用户提供高相关性的结果。如果提供的结果中有大量与用户需求不相关的内容,用户体验会受到影响,因此精确率在这些任务中非常重要。

5.3 小结

  • 召回率更重要的任务:通常是那些漏掉关键信息会有严重后果的任务,如医疗诊断、欺诈检测和安全监控。
  • 精确率更重要的任务:通常是那些误报代价较高的任务,如垃圾邮件过滤、广告推荐和信息检索。

        要注意的是,在召回率更重要的任务里,不代表精确率不重要,反之也是一样,就比如,1000个做病毒检测的人里,100个人实际患病了,我把1000人都标记为患病,那召回率确实高,100%,精确率只有10%,但这检测还有什么意义呢 

 

6.F1score 

F1分数(F1 Score) 是一个统计指标,用于衡量二分类模型精确率和召回率的平衡。这个指标特别适用于那些对精确率和召回率同等重视的情况。F1分数是精确率和召回率的调和平均数,提供了一个单一的度量标准来评估模型的总体效果。

F1分数的取值范围是0到1,1表示完美的精确率和召回率,0则表示两者中至少有一个为零。F1分数是一个特别重要的指标,因为在很多实际应用中,仅仅关注精确率或召回率是不够的。例如:

  • 在精确率很高但召回率很低的情况下,虽然模型预测为正的样本几乎都是正确的,但模型错过了很多实际为正的样本。
  • 在召回率很高但精确率很低的情况下,模型识别了大部分或所有的正样本,但也将很多负样本错误地标记为正样本。

 在类别不平衡的数据集中,简单的准确率可能会给出误导性的高分。例如,如果负类远多于正类,模型即使只预测负类,也会得到高准确率。这时,精确率和召回率就显得尤为重要,因为它们分别衡量了模型在识别正类样本方面的表现。F1分数综合了这两者,避免了类别不平衡带来的偏差。

精确率和召回率往往存在冲突

典型场景中的冲突

  • 在医疗诊断中:为了不漏掉任何病患(高召回率),模型可能会倾向于标记更多的样本为阳性,但这也会导致更多健康人被误诊为病患,降低精确率。

  • 在垃圾邮件过滤中:为了确保垃圾邮件被准确地过滤掉(高精确率),模型可能会提高判断标准,只标记那些非常可能是垃圾邮件的邮件为垃圾邮件,但这样一来,一些实际的垃圾邮件可能会被漏掉,降低召回率。

7.ROC曲线AUC得分

ROC曲线(Receiver Operating Characteristic curve)和AUC(Area Under the Curve)是评估二元分类模型性能的重要工具。这两个概念通常一起使用,用于量化分类模型在所有可能的分类阈值下的表现。以下是这两个概念的详细解释: 

1. ROC曲线

ROC曲线是一种图形化的评价方式,用于显示分类模型在所有分类阈值下的性能。它通过将真正率(True Positive Rate, TPR)与假正率(False Positive Rate, FPR)进行对比来表示。其中:

  • 真正率 (TPR),也称为召回率或查全率,是模型正确识别正类的能力,计算公式为:
  • ​ 其中TP是真正类,FN是假负类。
  • 假正率 (FPR) 表示被错误标记为正类的负类样本的比例,(注意,这个不是精确率)计算公式为:
  • 其中FP是假正类,TN是真负类。

ROC曲线的x轴是FPR,y轴是TPR。理想情况下,一个完美的分类器的ROC曲线会沿着y轴直上,然后沿x轴的0处向右延伸,形成一个向左上角延伸的“L”形。这表示模型在没有增加假正率的情况下达到了最高的真正率。

2. AUC

AUC代表ROC曲线下的面积。它是一个介于0和1之间的数,用于衡量模型整体的分类性能。AUC的值越接近1,表示模型的性能越好;AUC的值越接近0.5,表示模型的性能没有比随机猜测好多少;如果AUC小于0.5,通常意味着模型做出的预测与实际情况相反。

8.特异度(Specificity)

是用来评估分类模型在正确识别负类(非目标类)的能力的统计指标。它与召回率(查全率)是互补的,召回率专注于正类的识别,而特异度则关注于负类的正确识别。 

1. 医疗检测

在许多医疗检测中,特异度是一个非常重要的指标。

  • 场景:癌症筛查测试。
  • 数据集:假设有1000个患者,其中950人没有癌症(负类)。
  • 模型预测:模型正确地识别了900个健康患者(真负类),但错误地将50个健康患者诊断为癌症(假正类)。
  • 特异度
  • 解释:特异度94.7%表示模型在识别健康患者方面表现良好,很少将健康人误诊为患癌。

2. 垃圾邮件过滤

在电子邮件系统中,特异度可以衡量过滤器对正常邮件的识别能力。

  • 场景:垃圾邮件过滤。
  • 数据集:假设1000封邮件中,800封是正常邮件(负类)。
  • 模型预测:过滤器正确识别了750封正常邮件(真负类),但错误地将50封正常邮件标记为垃圾邮件(假正类)。
  • 特异度
  • 解释:特异度93.75%表示过滤器在准确识别正常邮件方面表现良好,误将正常邮件标记为垃圾邮件的情况较少。

3. 金融欺诈检测

在银行系统中,特异度可以帮助评估模型识别合法交易的能力。

  • 场景:信用卡欺诈检测。
  • 数据集:假设10000笔交易中,9900笔是合法交易(负类)。
  • 模型预测:模型正确识别了9800笔合法交易(真负类),但错误地将100笔合法交易识别为欺诈(假正类)。
  • 特异度
  • 解释:特异度98.99%表示模型在识别合法交易方面非常有效,错误标记合法交易的情况很少。

4. 入侵检测

在网络安全领域,特异度衡量系统正确识别正常流量的能力。

  • 场景:网络入侵检测系统。
  • 数据集:假设10000次网络访问中,9900次是正常访问(负类)。
  • 模型预测:系统正确识别了9700次正常访问(真负类),但错误地将200次正常访问识别为入侵(假正类)。
  • 特异度
  • 解释:特异度97.98%表示系统在识别正常流量方面表现良好,但仍有一定的误报率。
  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值