分类任务评价指标

news2024/11/26 18:24:43

分类任务评价指标

分类任务中,有以下几个常用指标:

  • 混淆矩阵
  • 准确率(Accuracy)
  • 精确率(查准率,Precision)
  • 召回率(查全率,Recall)
  • F-score
  • PR曲线
  • ROC曲线

1. 混淆矩阵

真实1真实0
预测1TPFP
预测0FNTN

预测的角度看:

  • TP: True Positive。预测为1,实际为1,预测正确。
  • FP: False Positive。预测为1,实际为0,预测错误。
  • FN: False Negative。预测为0,实际为1,预测错误。
  • TN: True Negative。预测为0,实际为0,预测正确。

2.准确率(Accuracy)

所有预测结果中,正确预测的占比:

$Accuracy = \frac{TP+TN}{TP+FP+FN+TN} $

准确率衡量整体(包括正样本和负样本)的预测准确度,但不适用与样本不均衡的情况。比如有100个样本,其中正样本90个,负样本10个,此时模型将所有样本都预测为正样本就可以取得 90% 的准确率,但实际上这个模型根本就没有分类的能力。

3. 精确率(查准率,Precision)

所有预测为1的样本中,正确预测的占比:

$ Precision = \frac{TP}{TP+FP}$

衡量正样本的预测准确度

4. 召回率(查全率,Recall)

所有真实标签为1的样本中,正确预测的占比:

R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP

衡量模型预测正样本的能力

5. F-score

综合考虑精确率和召回率:

$ F_{score}=(1+\beta2)\frac{PR}{\beta2*P+R} $

  • β=1,表示Precision与Recall一样重要(此时也叫F1-score
  • β<1,表示Precision比Recall重要
  • β>1,表示Recall比Precision重要

精确率和召回率相互“制约”:精确率高,则召回率就低;召回率高,则精确率就低。因此就需要综合考虑它们,最常见的方法就是 F-score 。F-score越大模型性能越好。

6. PR曲线

6.1 绘制方法

PR曲线以召回率R为横坐标、以精确率P为纵坐标,以下面的数据为例说明一下绘制方法:

12345
预测为正类的概率 score0.90.80.70.50.3
实际类别 class10110
  1. 将每个样本的预测结果按照预测为正类的概率排序(上面已排序)

  2. 依次看每个样本

    a) 对于样本1,将它的 score 0.9 作为阈值,即 score >= 0.9时样本预测为 1 ,反之预测为 0,得到以下混淆矩阵

    真实1真实0
    预测110
    预测022

    b) 对于样本2,将它的 score 0.8 作为阈值,即 score >= 0.8时样本预测为 1 ,反之预测为 0,得到以下混淆矩阵

    真实1真实0
    预测111
    预测021

    c) ……

    d) ……

    e) 对于样本5,将它的 score 0.3 作为阈值,即 score >= 0.3时样本预测为 1 ,反之预测为 0,得到以下混淆矩阵

    真实1真实0
    预测132
    预测000
  3. 根据上面的混淆矩阵,依次算出 5 对(R, R),以召回率R为横坐标、以精确率P为纵坐标,将这些点连接起来即得到 PR 曲线。

6.2 模型性能衡量方法

请添加图片描述

  1. 如果曲线A完全“包住”曲线B,则A的性能优于B(P和R越高,代表算法分类能力越强);

  2. 曲线AB发生交叉时:以PR曲线下的面积作为衡量指标(这个指标通常难以计算);

  3. 使用 “平衡点”(P=R时的取值),值越大代表效果越优(这个点过于简化,更常用的是F1-score)。

7. ROC曲线

真阳性率(真实1里面正确预测为1的概率): T P R = T P T P + F N TPR = \frac{TP}{TP+FN} TPR=TP+FNTP

假阳性率(真实0里面错误预测为1的概率): F P R = F P F P + T N FPR = \frac{FP}{FP+TN} FPR=FP+TNFP

7.1 绘制方法

ROC曲线以假阳性率FPR为横坐标、以真阳性率TPR为纵坐标,以下面的数据为例说明一下绘制方法:

12345
预测为正类的概率 score0.90.80.70.50.3
实际类别 class10110
  1. 将每个样本的预测结果按照预测为正类的概率排序(上面已排序)

  2. 依次看每个样本

    a) 对于样本1,将它的 score 0.9 作为阈值,即 score >= 0.9时样本预测为 1 ,反之预测为 0,得到以下混淆矩阵

    真实1真实0
    预测110
    预测022

    b) 对于样本2,将它的 score 0.8 作为阈值,即 score >= 0.8时样本预测为 1 ,反之预测为 0,得到以下混淆矩阵

    真实1真实0
    预测111
    预测021

    c) ……

    d) ……

    e) 对于样本5,将它的 score 0.3 作为阈值,即 score >= 0.3时样本预测为 1 ,反之预测为 0,得到以下混淆矩阵

    真实1真实0
    预测132
    预测000
  3. 根据上面的混淆矩阵,依次算出 5 对(FPR, TPR),以假阳性率FPR为横坐标、以真阳性率TPR为纵坐标,将这些点连接起来即得到 ROC 曲线。

7.2 模型性能衡量方法

请添加图片描述

ROC曲线下的面积(AUC)作为衡量指标,面积越大,性能越好。

7.3 AUC的计算

在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数:

A U C = ∑ I ( P 正样本 , P 负样本 ) M ∗ N AUC = \frac{\sum I(P_\text{正样本},P_\text{负样本})}{M^*N} AUC=MNI(P正样本,P负样本)

其中:

I ( P 正样本 , P 负样本 ) = { 1 , P 正样本 > P 正样本 0.5 , P 正样本 = P 负样本 0 , P 正样本 < P 负样本 I(P_\text{正样本},P_\text{负样本})=\begin{cases}1,P_\text{正样本}>P_\text{正样本}\\0.5,P_\text{正样本}=P_\text{负样本}\\0,P_\text{正样本}<P_\text{负样本}\end{cases} I(P正样本,P负样本)= 1,P正样本>P正样本0.5,P正样本=P负样本0,P正样本<P负样本

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

配置Jenkins

主要是配置Jenkins和jdk,maven的插件

Spring Cloud Alibaba Nacos配置导入问题解决方案

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

论文复现--lightweight-human-pose-estimation-3d-demo.pytorch(单视角多人3D实时动作捕捉DEMO)

分类&#xff1a;动作捕捉 github地址&#xff1a;https://github.com/Daniil-Osokin/lightweight-human-pose-estimation-3d-demo.pytorch 所需环境&#xff1a; Windows10&#xff0c;conda 4.13.0&#xff1b; 目录 conda环境配置安装Pytorch全家桶安装TensorRT&#xff08;…

[数据集][目标检测]裸土识别裸土未覆盖目标检测数据集VOC格式857张2类别

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;857 标注数量(xml文件个数)&#xff1a;857 标注类别数&#xff1a;2 标注类别名称:["luotu","n…

Python网络爬虫中这七个li标签下面的属性值,不是固定的,怎样才能拿到他们的值呢?...

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 愚以为宫中之事&#xff0c;事无大小&#xff0c;悉以咨之&#xff0c;然后施行&#xff0c;必能裨补阙漏&#xff0c;有所广益。 大家好&#xff0c;我…

Java8实战-总结21

Java8实战-总结21 使用流归约元素求和无初始值 最大值和最小值 使用流 归约 到目前为止&#xff0c;见到过的终端操作都是返回一个boolean(allMatch之类的)、void(forEach)或optional对象(findAny等)。也见过了使用collect来将流中的所有元素组合成一个List。 如何把一个流中…

r7 7840u和r7 7840hs差距 锐龙r77840u和r77840hs对比

锐龙7 7840U 采用Zen3架构、8核心16线程&#xff0c;基准频率疑似3.3GHz&#xff0c;同样集成RDNA3架构核显Radeon 780M&#xff0c;也是12个CU单元 r7 7840U 的处理器在 Cinebench R23 中多核跑分 14825 分 选r7 7840u还是 R7 7840HS这些点很重要 http://www.adiannao.cn/dy …

小红书笔记爬虫

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

codesys可视化

可视化有2种&#xff1a;本地和网页 触摸屏的话&#xff0c;属于网页。 1先配置IDE 如果有些控件&#xff0c;别人有&#xff0c;而你却没有&#xff0c;原因是&#xff1a;你库里没有引用。 比如缺少3D轨迹的控制面板&#xff0c;你需要库内引用 VisuStruct3DControl编译报错…

C 风格文件输入/输出 (std::fopen)(std::freopen)(std::fclose)

文件访问 打开文件 std::fopen std::FILE* fopen( const char* filename, const char* mode ); 打开 filename 所指示的文件并返回与该文件关联的流。用 mode 确定文件访问模式。 参数 filename-要关联文件流到的文件名mode-确定文件访问模式的空终止字符串 文件访问模式字…

sql:SQL优化知识点记录(十一)

&#xff08;1&#xff09;用Show Profile进行sql分析 新的一个优化的方式show Profile 运行一些查询sql&#xff1a; 查看一下我们执行过的sql 显示sql查询声明周期完整的过程&#xff1a; 当执行过程出现了下面这4个中的时&#xff0c;就会有问题导致效率慢 8这个sql创建…

【图解RabbitMQ-3】消息队列RabbitMQ介绍及核心流程

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

linux线程讲解

1.线程概述 一个进程在同一时刻只做一件事情&#xff0c;进程是程序执行的一个实例。 线程是操作系统能够进行运算调度的最小单位&#xff0c;一个进程中可以并发多个线程&#xff0c;每条线程并行执行不同的任务。 进程&#xff1a;资源分配的最小单位。线程&#xff0c;程…

【vue2第十四章】 插槽(普通插槽、具名插槽、作用域插槽语法)

插槽 插槽是什么&#xff1f; 在 Vue 2 中&#xff0c;插槽&#xff08;slot&#xff09;是一种用于定义组件内部内容分发的机制。它允许你将组件中的一部分内容替换为用户自定义的内容&#xff0c;并在组件内部进行渲染。 通过在组件模板中使用 <slot></slot> 标…

yml配置动态数据源(数据库@DS)与引起(If you want an embedded database (H2, HSQL or Derby))类问题

1&#xff1a;yml 配置 spring:datasource:dynamic:datasource:master:url: jdbc:mysql://192.168.11.50:3306/dsdd?characterEncodingUTF-8&useUnicodetrue&useSSLfalse&tinyInt1isBitfalse&allowPublicKeyRetrievaltrue&serverTimezoneUTCusername: ro…

Ceph PG Peering数据修复

ceph数据修复 当PG完成了Peering过程后&#xff0c;处于Active状态的PG就可以对外提供服务了。如果该PG的各个副本上有不一致的对象&#xff0c;就需要进行修复。 Ceph的修复过程有两种&#xff1a;Recovery和Backfill。 Recovery是仅依据PG日志中的缺失记录来修复不一致的对…

Vue进阶(六十七)页面刷新路由传参丢失问题分析及解决

文章目录 一、前言二、问题排查三、延伸阅读3.1 Apache服务器access_log日志3.2 浏览器的常见User Agent 各字段的解释 一、前言 问题描述&#xff1a;Vue项目上线后&#xff0c;在IE浏览器上&#xff0c;从A页面跳转至B页面&#xff0c;B页面通过data中接收来自A页面的参数信…

JavaScript简称“JS”简单介绍

JavaScript简称“JS” JavaScript&#xff08;简称“JS”&#xff09;是一种具有函数优先的轻量级&#xff0c;解释型或即时编译型的编程语言。虽然它是作为 开发 Web 页面的脚本语言而出名&#xff0c;但是它也被用到了很多非浏览器环境中&#xff0c; JavaScript 基于原型编…

使用自定义注解和SpringAOP捕获Service层异常,并处理自定义异常

目录 一 自定义异常二 自定义注解三 注解切面处理类四 使用 一 自定义异常 /*** 自定义参数为null异常*/ public class NoParamsException extends Exception {//用详细信息指定一个异常public NoParamsException(String message){super(message);}//用指定的详细信息和原因构…

Matlab图像处理-低通滤波

低通滤波 频域低通滤波法可以去除或削弱图像的高频成分&#xff0c;以去掉噪声使图像平滑。 理想低通滤波器是指输入信号在通带内所有频率分量完全无损地通过&#xff0c;而在阻带内所有频率分量完全衰减。 低通滤波的效果是图像去噪声平滑增强&#xff0c;但同时也抑制了图…