一文搞懂机器学习准确率(Accuracy)、精确率(Pecision)、召回率(Recall)以及TP、FP、TN、FN

刚开始学机器学习尤其是计算机视觉的同学一定会接触到精确率(Pecision)和召回率(Recall)这两个词,看了公式还是一脸懵逼,今天就来通俗易懂的解释一下这两个关键的指标!
这两个指标核心实质可以总结为:

提升精确率是为了不错报、提升召回率是为了不漏报

首先要了解一下TP、FP、TN、FN的基本概念

一、四个概念定义:TP、FP、TN、FN

  • TP:(True Positive) 做出Positive的判定,而且判定是正确的
  • FP:(False Positive)做出Positive的判定,但是判定是错误的
  • TN:(True Negative)做出Negative的判定,而且判定是正确的
  • FN:(False Negative)做出Negative的判定,但是判定是错误的

不知道大家找到规律了没有,其实很好记,重点来了!!!
记忆方法:(通俗简化理解来方便记忆)
见到这四个词可以从后往前翻译:
(1)先看第二个字母,P代表做出Positive的判定(比如可以简单理解为预测下雨这件事会发生),而N代表代表做出Negative的判定(比如可以简单理解为预测下雨这件事不发生)
(2)然后看第一个字母,T代表模型做出的判定是正确(True)的(比如可以简单理解为天气预报的结果和实际当天情况符合),F代表模型做出的判定是正确(False )的(比如可以简单理解为天气预报的结果和实际当天情况不符合)

Tips:
这里大家可以思考一下:(下面会用到)
预测结果为正类(Positive)的数量 = ?+ ?
实际(真值)为正类(Positive)的数量 = ?+ ?

二、准确率、精确率、召回率

在这里先正确区分一下精确率和准确率,以及他们的别称
在这里插入图片描述
准确率很好理解,被正确预测出来的数量除以所有的样本数量,
而召回率和精确率的区别很容易混淆,即使记住了公式,过段时间还是会忘掉,这里完全讲清楚这几个率的区别

精确率和召回率分子是一样的,就是只有分母不一样,上面的思考题在这里就可以用上了

预测结果为正类(Positive)的数量 = TP+ FP

实际(真值)为正类(Positive)的数量 = TP+ FN

(这里需要转一下脑筋,模型做出了Negative的预测判定,但是判定是错误的,不就说明实际是Positive吗?)

下面以预测地震为例

你的老板让你做一个地震预测模型(以天为单位记某一天地震为正样本,不地震为负样本),你需要预测接下来100天的地震情况。
假设你知道第50天和51天会地震,其余的1-49和51-100天不会地震。
现在假设你的模型已经做好,但是不能精确率和召回率二者不可得兼,摆在你面前的是提升其中的一个率,你应该怎么办?

精确率: 分母是预测到的正类,精确率的提出是让模型的现有预测结果尽可能不出错(宁愿漏检,也不能让现有的预测有错)

强化一下最开始的总结:提升精确率是为了不错报、提升召回率是为了不漏报

以地震预测为例就是说宁愿地震了没报,也不能误报地震,比如说为了不错报,只预测了第50天可能发生地震,此时的

1.精确率:1/1=100%

2.召回率:1/2=50%

虽然有一次地震没预测到,但是我们做出的预测都是对的。

召回率: 分母是实际原本的正类,召回率的提出是让模型预测到所有想被预测到的样本(就算多预测一些错的,也能接受)

强化一下最开始的总结:提升精确率是为了不错报、提升召回率是为了不漏报

以地震模型为例说这100次地震,比如说为了不漏报,预测了第30天、50天、51天、70天、85天地震,此时的

1.精确率:2/5=40%

2.召回率:2/2=100%

虽然预测错了3次,但是我们把会造成灾难的2次地震全预测到了。

那么精确率(Pecision)和召回率(Recall)应该如何取舍呢?

假设地震发生没有预测到会造成百亿级别的损失,而地震没发生误报了地震会造成百万级别的损失

显然,这种情况下我们应该接受为了不能漏掉一次地震而多次误报带来的损失,即提升召回率

精确率和召回率有什么用?为什么需要它?通俗讲解上面我们已经讲的很清楚了,这里以两种需求为例

  • 预测地震 - 不能接受漏报
  • 人脸识别支付(银行人脸支付) - 不能接受误检

人脸识别支付:主要提升精确率,更倾向于不能出现错误的预测。

应用场景:你刷脸支付时就算几次没检测到你的脸,最多会让你愤怒,对银行损失不大,但是如果把你的脸检测成别人的脸,就会出现金融风险,让别人替你买单,对银行损失很大。所以宁愿让你付不了钱,也不会让别人帮你付钱。

预测地震:主要提升召回率 ,更倾向于宁愿多预测一些错的也不能漏检。

应用场景:地震预测时宁愿多预测一些错的,也不想漏掉一次地震,预测错误最多会让大家多跑几趟,造成少量损失。只要预测对一次,就会挽回百亿级别的损失,之前所有的损失都值了。

不同的应用场景,需要的评价标准不一样,所以才会有这些率。


三、总结

一、TP、FP、TN、FN理解记忆方法:(通俗简化理解来方便记忆)
见到这四个词可以从后往前翻译:
(1)先看第二个字母,P代表做出Positive的判定(比如可以简单理解为预测下雨这件事会发生),而N代表代表做出Negative的判定(比如可以简单理解为预测下雨这件事不发生)
(2)然后看第一个字母,T代表模型做出的判定是正确(True)的(比如可以简单理解为天气预报的结果和实际当天情况符合),F代表模型做出的判定是正确(False )的(比如可以简单理解为天气预报的结果和实际当天情况不符合)
二、指标核心实质可以总结为:
提升精确率是为了不错报、提升召回率是为了不漏报!

参考文献:(感谢两个知乎大佬的解释!)
https://zhuanlan.zhihu.com/p/93586831
https://zhuanlan.zhihu.com/p/31458989’


欢迎大家扫码关注本人公众号:编程复盘与思考随笔

(关注后可以免费获得本人在csdn发布的资源源码)

公众号主要记录编程和刷题时的总结复盘笔记和心得!并且分享读书、工作、生活中的一些思考感悟!
在这里插入图片描述

想要组队一起参加阿里天池,kaggle,百度飞浆,科大讯飞等AI相关的比赛的同学可以扫下面的二维码加微信一起讨论学习!

在这里插入图片描述

  • 17
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
假设我们有一个二分类问题,分类标签为“正类”和“负类”。我们使用一个机器学习模型来预测一个样本属于哪一类,然后将模型的预测结果与实际标签进行比较。在这种情况下,“准确率”、“召回率”和“精确率”的含义如下: - 准确率Accuracy):指分类器正确分类的样本数占总样本数的比例。即准确率 = (TP + TN) / (TP + TN + FP + FN),其中TP表示真正例数(即正类样本被正确分类为正类),TN表示真负例数(即负类样本被正确分类为负类),FP表示假正例数(即负类样本被错误分类为正类),FN表示假负例数(即正类样本被错误分类为负类)。 - 召回率Recall):指分类器正确分类的正类样本数占所有正类样本数的比例。即召回率 = TP / (TP + FN)。 - 精确率(Precision):指分类器正确分类的正类样本数占所有被分类为正类的样本数的比例。即精确率 = TP / (TP + FP)。 举个例子,假设我们有100个样本,其中60个是正类,40个是负类。我们使用一个二分类模型进行预测,结果如下: - 预测结果为正类的样本有50个,其中有40个是真正例,10个是假正例; - 预测结果为负类的样本有50个,其中有45个是真负例,5个是假负例。 那么,我们可以计算出该模型的准确率召回率精确率如下: - 准确率 = (40 + 45) / 100 = 0.85(即85%的样本被正确分类); - 召回率 = 40 / 60 = 0.67(即67%的正类样本被正确分类); - 精确率 = 40 / 50 = 0.8(即80%的被分类为正类的样本是真正例)。 这些指标可以帮助我们评估分类器的性能和优化模型的参数。例如,如果我们希望提高召回率,我们可以尝试调整模型的阈值,使其更容易将正类样本分类为正类,即可提高召回率,但同时可能会降低精确率。因此,对于不同的应用场景,需要根据实际需求来综合考虑这些指标。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Al资料站与复盘笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值