成为AI产品经理——模型评估(混淆矩阵)
一、混淆矩阵
1.混淆矩阵的介绍
混淆矩阵有两个定义positive(正例)和negative(反例)。分别代表模型结果的好和坏。
下图就是一个分类问题的混淆矩阵。横行代表真实的情况,而竖行代表预测的结果。
为了便于理解,我在这里举一个分出瓜的好坏的分类问题。
TP:True Positive,真正例。表示这个瓜实际上是一个好瓜,预测出来的结果也是好瓜,所以它是一个真的好瓜,是一个真正例。预测结果正确。
FP:False Positive,假正例。表示这个瓜本身是一个坏瓜,预测结果却是一个好瓜,所以它是一个假的好瓜,是一个假正例。预测结果错误。
FN:False Negative,假反例。表示这个瓜本身是一个好瓜,预测结果是坏瓜,所以它是一个假的坏瓜,是一个假反例。预测结果错误。
TN:Truen Negative,真反例。表示这个瓜本身是一个坏瓜,预测结果也是一个坏瓜,所以它是一个真的坏瓜,是一个真反例。预测结果正确。
需要明确,明确T和F代表模型预测结果的对错,P和N代表模型预测出来的结果。
接下来,我们举个例子,便于我们学习混淆矩阵指标:准确率、精准率和召回率。
有100个瓜,实际上由40个好瓜,60个坏瓜。但是模型预测出来的结果为50个好瓜,50个坏瓜。在这50个好瓜里面,有30个预测对了,有20个预测错了。
此时预测的50个好瓜里面,30个预测对了,即真好瓜(TP);20个预测错了,即假好瓜。 所以TP = 30,FP = 20。
我们可以知道,40个好瓜=真的好瓜+预测错的坏瓜;60个坏瓜 = 真的坏瓜+假的好瓜。如下图:
根据以上式子,我们计算出了混淆矩阵所有的值。
根据以上条件,我们能够写出混淆矩阵。
我们期待的结果是预测结果和真实结果相一致,但是往往不太可能,所以我们需要评估的好坏,这里我们需要用到混淆矩阵的指标:准确率、精确率、召回率。
2.准确率
准确率是预测准确的样本数在所有预测样本数的比例。在我们这里就是预测的真的好瓜和真的坏瓜在总瓜数的占比。
准确率的计算公式为:
通过准确率我们可以看出模型的分类能力。
但是准确率的弊端是:如果在样本不均衡的情况下,占比大的对样本的影响比较大。
考虑一个极端的例子,其中有100个样本,其中99个属于类别A,1个属于类别B。如果一个模型将所有样本都预测为类别A,那么它的分子中,预测准确的A样本为99,预测准确的B样本为0,除以分母100。
准确率将是99%。尽管准确率很高,但模型对于类别B的预测几乎完全失败。所以这是不对的。
这种情况下,我们需要借助精准率(precision)。
3.精确率
精准率(precision),是用来计算模型预测的多准的指标,又名查准率。
精准率的计算公式为:
精确率关注的是在所有模型认为是正类别的样本中,有多大比例是真实的正类别。因此,精确率通常被解释为模型有多准确地"查准"了正类别,即模型有多能够确保它的正类别预测是准确的。
在一些应用中,比如垃圾邮件过滤,我们希望模型尽可能地准确地标识出正类别(即真正的垃圾邮件),同时避免将负类别(即正常邮件)错误地分类为正类别。在这种情况下,我们希望精确率尽可能高,以确保模型的正类别预测是可靠的。
3.召回率
如果说精确度是模型预测的多准的指标,那么召回率就是模型广度的指标,又被称为查全率。
召回率的计算公式为:
公式表示需要分类的类别,在实际的该种类总数中,占比多少。好瓜在实际好瓜的总数是多少。所以召回率(查全率)是指模型在多大程度上能够预测出我需要的类别。
比如说:我有100个好瓜,你识别出50个,那么你的就在识别出我所需要的类别的能力就有50%。
在实际的评估工作中,我们通常使用精确率和召回率来评估模型的效果。通过召回率看找到了多少我们想要找的好瓜,通过精确率来看我们找好瓜有多准。
召回率关注的是在实际为正类别的样本中,模型有多大程度地能够成功地识别出来。因此,召回率通常被解释为模型有多好地"查找"或"捕捉"了正类别,即模型有多能够找到所有实际存在的正类别样本。
在一些应用中,如医学诊断或欺诈检测,对于正类别的遗漏是不可接受的,因为这可能导致严重的后果。在这种情况下,我们希望模型的召回率尽可能高,以确保尽可能多地捕捉到所有真实的正类别。
由于精确率和召回率相互矛盾。模型如果想要查找的更准确,会减少识别的范围,所以精准率高,召回率低;反之,如果想要召回率高一点,那么精确率也会随之下降。
所以我们一般给算法同学提需求的时候会同时考虑。比如:30%的召回率下精准率提升5倍。
4.F1值
F1指标可以综合反映召回率和精准率,F1值越高,代表模型在精确率和召回率的综合表现越高。
F1的计算公式:
5.总结
准确率:比较容易理解,在样本不均衡的时候指标偏差过大。
精确率:模型预测的准确度。宁肯不预测,也不能预测错,秉持宁缺毋滥的原则。比如在刷脸支付的场景下,我们宁可检测不通过,而不能预测出错。
召回率:关注筛选的结果是不是全面的场景,秉持宁可错杀一千,也不放过一个的原则。
PS:如果对于这几个指标还是不明白,推荐大家看这篇博文,讲的比较清晰。
准确率,精准率,召回率,真正率,假正率,ROC/AUC-CSDN博客
参考文献: 刘海丰——《成为AI产品经理》
相关文章:

成为AI产品经理——模型评估(混淆矩阵)
一、混淆矩阵 1.混淆矩阵的介绍 混淆矩阵有两个定义positive(正例)和negative(反例)。分别代表模型结果的好和坏。 下图就是一个分类问题的混淆矩阵。横行代表真实的情况,而竖行代表预测的结果。 为了便于理解&…...
Git_git相关指令 高阶
git config pull.rebase false git config pull.rebase false是做什么的_fury_123的博客-CSDN博客 git commit 命令详解_gitcommit_辰风沐阳的博客-CSDN博客...
PC企业微信http协议逆向接口开发,发送大视频文件
产品说明 一、 hook版本:企业微信hook接口是指将企业微信的功能封装成dll,并提供简易的接口给程序调用。通过hook技术,可以在不修改企业微信客户端源代码的情况下,实现对企业微信客户端的功能进行扩展和定制化。企业微信hook接口…...

hyper-V操作虚拟机ubuntu 22.03
安装hyper-V 点击卸载程序 都勾选上即可 新建虚拟机,选择镜像文件 选择第一代即可 设置内存 配置网络 双击 启动安装虚拟机 输入用户名 zenglg 密码:LuoShuwen123456 按照enter键选中openssh安装 安装中 安装完成 选择重启 输入用户名、密码...

Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具
Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具 名称: spring 命令执行 (CVE-2022-22947) 描述: Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问A…...
代理模式-C++实现
代理模式是一种结构型设计模式,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者无法引用另一个对象,这个时候就需要一个代理对象充当客户端和目标对象之间的中介。 代理模式就是代理对象具备目标对象的所有…...

从 0 到 1 开发一个 node 命令行工具
G2 5.0 推出了服务端渲染的能力,为了让开发者更快捷得使用这部分能力,最写了一个 node 命令行工具 g2-ssr-node:用于把 G2 的 spec 转换成 png、jpeg 或者 pdf 等。基本的使用如下: $ g2-ssr-node g2png -i ./bar.json -o ./bar.…...

VsCode中使用功能vite创建vue3+js项目报错
VsCode中使用功能vite创建vue3js项目报错 VsCode中使用功能vite创建vue3js项目import模块报错如下处理方法 VsCode中使用功能vite创建vue3js项目import模块报错如下 处理方法 在项目根目录新建jsconfig.json {"compilerOptions": {"baseUrl": "./&q…...

COGVLM论文解读(COGVLM:VISUAL EXPERT FOR LARGE LANGUAGE MODELS)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、摘要二、引言三、模型方法1、模型思路2、融合公式 四、训练方法总结 前言 2023年5月18日清华&智谱AI发布并开源VisualGLM-6B以来,清华KEG&…...

Flink-时间流与水印
时间流与水印 一、背景二、时间语义1.事件时间(event time)2.读取时间(ingestion time)3.处理时间(processing time) 三、水印-Watermarks1.延迟和正确性2.延迟事件3.顺序流4.无序流5.并行流 四、Windows1.…...
BiLSTM-CRF的中文命名实体识别
项目地址:NLP-Application-and-Practice/11_BiLSTM-ner-bilstm-crf/11.3-BiLSTM-CRF的中文命名实体识别/ner_bilstm_crf at master zz-zik/NLP-Application-and-Practice (github.com) 读取renmindata.pkl文件 read_file_pkl.py # encoding:utf-8import pickle# …...
paddle detection 训练参数
#####################################基础配置##################################### # 检测算法使用YOLOv3,backbone使用MobileNet_v1,数据集使用roadsign_voc的配置文件模板,本配置文件默认使用单卡,单卡的batch_size=1 # 检测模型的名称 architecture: YOLOv3 # 根据…...

用bat制作图片马——一句话木马
效果图 代码 ECHO OFF TITLE PtoR MODE con COLS55 LINES25 color 0A:main cls echo.当前时间:%date% %time% echo.欢迎使用图片马制作工具 echo.请确保图片和php在同一路径下 echo.echo 请将图像文件拖放到此窗口并按 Enter: set /p "imagefile&q…...
json_encode() 返回 false
当 json_encode() 返回 false 时,表示 JSON 编码过程失败。这通常是因为要编码的数据包含了无效的 UTF-8 字符,而默认情况下 json_encode() 会对无效的 UTF-8 字符进行严格的处理 通过添加 JSON_INVALID_UTF8_IGNORE 选项,你告诉 json_encod…...
Android-Jetpack--Hilt详解
善学者尽其理,善行者究其难 一,定义 Hilt是针对dagger2的二次封装依赖注入框架,至于什么是依赖注入,在Android开源框架--Dagger2详解-CSDN博客 中已经讲解,建议大家先去了解Dagger2之后,再来看Hilt。这样就…...

Docker 下载加速
文章目录 方式1:使用 网易数帆容器镜像仓库进行下载。方式2:配置阿里云加速。方式3:方式4:结尾注意 Docker下载加速的原理是,在拉取镜像时使用一个国内的镜像站点,该站点已经缓存了各个版本的官方 Docker 镜…...
1091 Acute Stroke (三维搜索)
题目可能看起来很难的样子,但是看懂了其实挺简单的。(众所周知,pat考察英文水平) 题目意思大概是:给你一个L*M*N的01长方体,求全为1的连通块的总体积大小。(连通块体积大于T才计算在内…...
java elasticsearch 桶聚合(bucket)
Elasticsearch指标聚合,就是类似SQL的统计函数,指标聚合可以单独使用,也可以跟桶聚合一起使用,下面介绍Java Elasticsearch指标聚合的写法。 实例: // 首先创建RestClient,后续章节通过RestClient对象进行…...
【人生苦短,我学 Python】(4)Python 常用内置数据类型 II —— 序列数据类型(str、tuple、list、bytes和bytearray)
目录 简述 / 前言1. str 数据类型(字符串)1.1 str对象1.2 str对象属性和方法1.3 字符串编码1.4 转义字符1.5 字符串的格式化 2. tuple 数据类型(元组)2.1 创建元组对象 3. list 数据类型(列表)3.1 创建列表…...
Android 9.0 系统默认显示电量百分比
Android 9.0 系统默认显示电量百分比 近来收到项目需求需要设备默认显示电量百分比,具体修改参照如下: /frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java private void updateShowPercent() {final boolean showin…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...