成为AI产品经理——TPR、FPR、ROC、AUC

目录

一、PR图、BEP

1.PR图

2.BEP 

二、灵敏度、特异度

1.灵敏度

2.特异度

三、真正率、假正率 

1.真正率

2.假正率 

三、ROC、AUC

1.ROC

2.AUC

四、KS值


一、PR图、BEP

1.PR图

二分类问题模型通常输出的是一个概率值,我们需要设定一个阈值,让大于这个阈值的时候为正样本,其余的为负样本。

如果我们选择不同的阈值,我们就可以得到不同的预测结果,也就可以得到不同的混淆矩阵,从而得到不同的precision值和recall值。P-R图是我们在连续变化的阈值下,得到的准确率和召回率的关系。(召回率作为横轴,将精确率作为纵轴)。

PR 图主要有以下用途:

  1. 权衡 Precision 和 Recall: PR 图帮助我们直观地理解在不同阈值下模型的 Precision 和 Recall 的权衡关系。这对于某些应用中 Precision 和 Recall 之间存在权衡关系的情况非常重要,例如在医学领域的疾病诊断中,我们可能更关注 Recall,以确保尽可能多地捕获患者的真实病情。

  2. 评估样本不平衡: 当数据集中的类别不平衡时,PR 图比 ROC 曲线更能准确地反映模型性能。在样本不平衡的情况下,ROC 曲线可能给出过于乐观的评估,而 PR 图更能反映模型在正类别上的性能。

  3. 选择适当的阈值: PR 图可以帮助选择适当的分类阈值,以满足特定任务的需求。根据应用场景,我们可能更关注 Precision 或 Recall,通过观察 PR 图可以更好地理解不同阈值下的模型表现。

  4. 比较模型性能: PR 图可用于比较不同模型的性能。具体来说,我们可以比较不同模型在保持较高 Precision 的同时实现较高 Recall 的能力,或者根据实际需求调整模型的阈值。

下图A模型的曲线完全包住C模型的曲线,我们就说A模型比C模型的效果好;

B模型的曲线完全包住C模型的曲线,我们就说B模型比C模型的效果好;

但是A模型和B模型的曲线有交叉,我们使用BEP进行比较。

2.BEP 

BEP是精确率和召回率的平衡点,P=R时,那一条线。如果,模型的PR曲线有交叉,我们可以根据BEP来判断模型的好坏。

BEP过于简单,我们常用F1值来比较模型。F1值是考虑了召回率和精确率的一个计算指标。

F1 = \frac{2*precision*recall}{precision+recall}

二、灵敏度、特异度

1.灵敏度

灵敏度的计算公式为:

灵敏度  = \frac{TP}{TP+FN}

灵敏度是在实际的正样本中,能够找到正样本的能力。 它和召回率的公式一样,它就是召回率。

2.特异度

特异度的计算公式为:

特异度  =\frac{TN}{TN+FP} 

特异度是指在实际所有的负样本中,找到正确负样本的能力。 

三、真正率、假正率 

1.真正率

真正率=召回率=灵敏度   = \frac{TP}{TP+FN}

真正率的含义是在所有实际的正样本下识别为正样本的概率。

2.假正率 

误判率 = 假正率 = 1 - 特异度 = \frac{FP}{TN+FP}

因为特异度是在实际的负样本中找到负样本的能力,1-特异度就代表它在所有实际的负样本中找正样本的能力,那这肯定不对啦,在负样本中怎么能找到正样本呢?所有这些正样本是错误的正样本。所以我们把这个概率也叫做假正率。 

在我们实际工作中,为了避免样本对于精确率和召回率的影响,可以使用TPR和FPR。

三、ROC、AUC

1.ROC

ROC曲线是我们在连续变化的阈值下,生成不同的正负样本,对应出不同的混淆矩阵,得到不同的TPR和FPR值所绘制出来的一条曲线,它表示TPR和FPR的关系。

图中有一条绿色的直线,这条绿的直线代表真正率和假正率概率一样,也就是这种分类概率和我们随机猜的概率一样,模型效果差,不能用。越靠近这条直线,模型效果越差,这条绿色直线下面的是指,绝大多数情况下,模型的正样本都预测错了,根本不能用。

我们希望的是,真正率高,假正率低,也就是靠近左上方(0,1)的位置,此时真正率接近于1,假正率接近于0

2.AUC

AUC是ROC曲线下面的面积,在绿色直线处,总面积1被一分为二,我们需要直线上面部分的面积,这一部分面积的值为0.5-1,小于0.5不能用。

  • 0.5 - 0.7:效果较低
  • 0.7 - 0.85:效果一般
  • 0.85 - 0.95:效果很好
  • 0.95 - 1:效果非常好,一般不可能。要对这个结果持怀疑态度,进一步分析模型的准确性。

四、KS值

横坐标为在连续的阈值变化下的正样本的个数(概率分数、模型预测数)。纵坐标为TPR和FPR。

KS为在某一阈值的正样本数(概率分数) 下,TPR-FPR的值。

KS = max(TPR - FPR)

KS用来评估模型好坏样本的区分程度,有时候人们会把0.6的KS值乘以100,说成60,也正确。

KS值的业务标准如下: 

  • KS<20:欠拟合,模型不具备可用性
  • KS>20 & KS<30:模型可用
  • KS>30 & KS<40 :模型预测能力优秀
  • KS>40:模型区分度很高。我们需要对这个结果持怀疑态度,进一步分析模型的准确性。

上边的业务标准是刘老师给出的,下面这个是网上大部分资料给出的。

  • KS: <20% : 差 
  • KS: 20%-40% : 一般 
  • KS: 41%-50% : 好 
  • KS: 51%-75% : 非常好
  • KS: >75% : 过高,需要谨慎的验证模型

业务标准根据不同的业务场景而调整,并不是一个统一的值。

如果模型的AUC或KS值很高,并不是一件好事情。我们要进一步分析模型的准确性,避免是因为数据不准确导致的。

五、总结

准确率,精准率,召回率,真正率,假正率,ROC/AUC-CSDN博客

参考文献: 刘海丰——《成为AI产品经理》

声明:本文是对于刘海丰老师《成为AI产品经理》课程重点的总结,自用,请勿传播。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/203996.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机爬虫用Fiddler详细教程

如果你正在进行手机爬虫的工作&#xff0c;那么一款强大而又实用的网络调试工具Fiddler将会是你的好帮手。今天&#xff0c;我将和大家分享一份详细的Fiddler教程&#xff0c;教你如何使用它来轻松捕获和分析手机App的网络请求。让我们一起来探索Fiddler的功能和操作&#xff0…

IntelliJ IDEA 16创建Web项目

首先要理解一个概念&#xff1a;在IntelliJ IDEA中“new Project”相当于eclipse中的工作空间&#xff08;Workspace&#xff09;&#xff0c;而“new Module”相当于eclipse中的工程&#xff08;Project&#xff09;。以下均采用Intellij的说法&#xff0c;请自行对照转换理解…

opencv-图像平滑

高斯平滑 高斯平滑即采用高斯卷积核对图像矩阵进行卷积操作。高斯卷积核是一个近似服从高斯分布的矩阵&#xff0c;随着距离中心点的距离增加&#xff0c;其值变小。这样进行平滑处理时&#xff0c;图像矩阵中锚点处像素值权重大&#xff0c;边缘处像素值权重小。 import cv2 …

PTA-6-48 使用面向对象的思想编写程序描述动物

题目&#xff1a; 使用面向对象的思想编写程序描述动物&#xff0c;说明&#xff1a; &#xff08;1) 分析兔子和青蛙的共性&#xff0c;定义抽象的动物类&#xff0c;拥有一些动物共有的属性&#xff1a;名字、颜色、类别&#xff08;哺乳类、非哺乳类&#xff09;&#xff0c…

在Windows WSL (Linux的Windows子系统)上运行的Ubuntu如何更改主机名

在Windows 安装的Ubuntu&#xff0c;如何修改主机名。有列了两种方法&#xff0c;提供给大家参照。 文章目录 方法一&#xff1a;hostname指令修改方法二&#xff1a;修改配置文件修改hostnanmewsl.conf 文件配置选项推荐阅读 方法一&#xff1a;hostname指令修改 hostname指…

第 373 场 LeetCode 周赛题解

A 循环移位后的矩阵相似检查 模拟 class Solution { public:bool areSimilar(vector<vector<int>> &mat, int k) {int m mat.size(), n mat[0].size();k % n;auto g mat;for (int i 0; i < m; i)if (i & 1)rotate(mat[i].begin(), mat[i].begin() …

MySQL学习day03

一、SQL图形化界面工具 常用比较常用的图形化界面有sqlyog、mavicat、datagrip datagrip工具使用相当方便&#xff0c;功能比前面两种都要强大。 DataGrip工具的安装和使用请查看这篇文档&#xff1a;DataGrip 安装教程 DML-介绍 DML全称是Data Manipulation Language(数据…

什么是高级语言、机器语言、汇编语言?什么是编译和解释?

1、高级语言 计算机程序是一种让计算机执行特定任务的方法。程序是由程序员用一种称为编程语言的特殊语言编写的。编程语言有很多种&#xff0c;例如 C、C、Java、Python 等。这些语言被称为高级语言&#xff0c;因为它们更接近人类的自然语言&#xff0c;而不是计算机能够直接…

电脑便签功能在哪里找?电脑桌面便签怎么添加?

很多上班族在使用电脑办公的时候&#xff0c;都需要随手记录工作事项&#xff0c;例如记录共同工作时的想法、会议笔记、常用工作资料、每天待办的工作任务等事项&#xff0c;这时候使用纸质的笔记本来记录工作&#xff0c;不仅不方便随时查看和使用&#xff0c;而且在修改、删…

final关键字-Java

final关键字 一、使用场景1、当不希望类被继承时&#xff0c;可以用final修饰。2、当不希望父类的某个方法被子类覆盖/重写(override)时&#xff0c;可以用final修饰。3、当不希望类的的某个属性的值被修改&#xff0c;可以用final修饰。4、当不希望某个局部变量被修改&#xf…

Kibana部署

服务器 安装软件主机名IP地址系统版本配置KibanaElk10.3.145.14centos7.5.18042核4G软件版本&#xff1a;nginx-1.14.2、kibana-7.13.2-linux-x86_64.tar.gz 1. 安装配置Kibana &#xff08;1&#xff09;安装 [rootelk ~]# tar zxf kibana-7.13.2-linux-x86_64.tar.gz -C…

第十五届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组(详细分析解答)

目录 1.动态的Tab栏 1.1 题目要求 1.2 题目分析 1.3 源代码 2.地球环游 2.1 题目要求 2.2 题目分析 2.3 源代码 3.迷惑的this 3.1 题目要求 3.2 题目分析 3.3 源代码 4.魔法失灵了 4.1 题目要求 4.2 题目分析 4.3 源代码 5.燃烧你的卡路里 5.1 题目要求 5.2…

SpectralGPT: Spectral Foundation Model 论文翻译1

遥感领域的通用大模型 2023.11.13在CVPR发表 原文地址&#xff1a;[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org) 摘要 ​ 基础模型最近引起了人们的极大关注&#xff0c;因为它有可能以一种自我监督的方式彻底改变视觉表征学习领域。虽然大多数基础模型…

VAE模型及pytorch实现

VAE模型及pytorch实现 VAE模型推导部分最小化KL散度推导代码部分损失函数Encoder部分Decoder部分VAE整体架构 VAE问题参考资料 VAE&#xff08;变分自编码器&#xff09;是一种生成模型&#xff0c;结合了自编码器和概率图模型的思想。它通过学习数据的潜在分布&#xff0c;可以…

人工智能|机器学习——机器学习如何判断模型训练是否充分

一、查看训练日志 训练日志是机器学习中广泛使用的训练诊断工具&#xff0c;每个 epoch 或 iterator 结束后&#xff0c;在训练集和验证集上评估模型&#xff0c;并以折线图的形式显示模型性能和收敛状况。训练期间查看模型的训练日志可用于判断模型训练时的问题&#xff0c;例…

【Android知识笔记】性能优化专题(四)

App 线程优化 线程调度原理 任意时刻,只有一个线程占用CPU,处于运行状态多线程并发:轮流获取CPU使用权JVM负责线程调度:按照特定机制分配CPU使用权线程调度模型 分时调度模型:轮流获取、均分CPU时间抢占式调度模型:优先级高的获取,JVM采用Android线程调度 nice值:Proc…

Linux Nmap命令解析(Nmap指令)(功能:主机发现、ping扫描、arp扫描、端口扫描、服务版本检测、操作系统识别等)

文章目录 Linux Nmap 命令解析简介Nmap 的核心功能主机发现端口扫描服务版本检测OS 指纹识别&#xff08;操作系统指纹识别&#xff09;脚本扫描 安装 NmapNmap 命令结构Nmap 命令文档英文中文 主机发现Ping 扫描ARP 扫描关于nmap -PR&#xff08;ARP Ping Scan&#xff09;和n…

Unity 关于生命周期函数的一些认识

Unity 生命周期函数主要有以下一些&#xff1a; Awake(): 在脚本被加载时调用。用于初始化对象的状态和引用。 OnEnable(): 在脚本组件被启用时调用。在脚本组件被激活时执行一次&#xff0c;以及在脚本组件被重新激活时执行。 Reset(): 在脚本组件被重置时调用。用于重置脚本…

卷积神经网络(CNN)识别验证码

文章目录 一、前言二、前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据3. 查看数据4.标签数字化 二、构建一个tf.data.Dataset1.预处理函数2.加载数据3.配置数据 三、搭建网络模型四、编译五、训练六、模型评估七、保存和加载模型八、预测 …

Windows下Linkis1.5DSS1.1.2本地调试

1 Linkis: 参考&#xff1a; 单机部署 | Apache Linkis技术分享 | 在本地开发调试Linkis的源码 (qq.com)DataSphere Studio1.0本地调试开发指南 - 掘金 (juejin.cn) 1.1 后端编译 参考【后端编译 | Apache Linkis】】 修改linkis模块下pom.xml,将mysql.connetor.scope修改…