当前位置: 首页 > news >正文

通俗解释机器学习中的召回率、精确率、准确率

先说个题外话,暴击一下乱写博客的人,网络上很多地方分不清准确率精确率,在这里先正确区分一下精确率和准确率,以及他们的别称。

切入正题

很多人分不清召回率和精确率的区别,即使记住了公式,过段时间还是会忘掉,这里我会完全讲清楚这几个率的区别

准确率很好理解,被正确预测出来的数量 / 所有的样本,这里不在赘述,主要讲解精确率和召回率

精确率和召回率就是分母不一样,下面以预测地震为例

请听题:你的老板让你做一个地震预测模型(以天为单位记某一天地震为正样本,不地震为负样本),你需要预测接下来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次地震全预测到了。

应该如何取舍呢?

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

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

精确率和召回率有什么用?为什么需要它?通俗讲解(人话)

上面我们已经讲的很清楚了,这里以两种需求为例

  1. 预测地震 - 不能接受漏报
  2. 人脸支付 - 不能接受误检

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

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

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

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

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

相关文章:

  • 详细介绍一下springboot自定义注解的使用方法
  • 【强化学习】Isaac sim 4.5 UI简介
  • [KEIL]单片机技巧 01
  • C#知识|泛型Generic概念与方法
  • 存贮论模型案例与Matlab实现
  • Ubuntu显卡服务器黑屏无响应的维护日志
  • 【Vue3】实现一个高可用的 markdown 显示组件
  • 【C++/数据结构】栈
  • LeetCode 718 - 最长重复子数组
  • VADv2: 基于矢量表征和概率规划的E2E架构
  • 《英雄无敌3:死亡阴影》游戏秘籍
  • 使用sam-vit-base 模型在caltech256 数据集上实现图片召回
  • 算法题笔记(自用)——Python
  • PHP实现国密SM4算法,银行系统加密算法,JAVA和PHP可相互转换(附完整源码)
  • 矩阵基本概念
  • Spring Boot 自定义 Starter 完整实战手册
  • QT:Graphics View的坐标系介绍
  • 消息中间件应用的常见问题与方案?
  • JS :移除数组中的指定数据
  • LeetCode 热题 100 53. 最大子数组和
  • 普京批准俄方与乌克兰谈判代表团人员名单
  • 一个多月来上海交大接连“牵手”三区,在这些方面进行区校合作
  • 菲律宾中期选举初步结果出炉,杜特尔特家族多人赢得地方选举
  • “大鼻子情圣”德帕迪约因性侵被判缓刑,还有新的官司等着他
  • 山西临汾哪吒主题景区回应雕塑被指抄袭:造型由第三方公司设计
  • AI含量非常高,2025上海教育博览会将于本周五开幕