机器学习基础知识之分类性能评价指标

news2024/11/26 22:25:10

文章目录

  • 分类性能基本概念
    • 1、准确率
    • 1、精确率
    • 2、召回率
    • 3、F1-score
    • 4、ROC曲线
    • 5、多分类问题中的相关指标
    • 6、混淆矩阵

分类性能基本概念

与预测性能评价指标相类似,分类性能评价指标同样也是将模型计算得出的标签值与实际的真实标签值通过数学统计上的公式进行计算来获得它们之间的关系,以此来评价模型分类性能的好坏。在二分类时,常见的性能分类指标有准确率、精确率、召回率、F1-score、ROC曲线面积,在多分类时主要使用准确率、精确率、召回率以及F1-score进行比较,同时还可使用混淆矩阵对分类评价结果进行展示。下面对常见的分类性能评价指标进行介绍。
在了解常见的分类性能评价指标之前,首先需要了解以下几个基本概念:
假设在分类问题中类属性标签分别为0和1,将类属性标签为0的样本视作正样本,将类属性标签为1的样本视作负样本,则被模型正确分类为正样本的正样本被称为真正例(True Positive,简称TP),被模型正确分类为负样本的负样本被称为真负例(True Negative,简称TN), 被模型错误分类为正样本的负样本被称为假正例(False Positive,简称FP),被模型错误分类为负样本的正样本被称为假负例(False Negative,简称FN)。
基于上述概念,几种常见的分类性能评价指标分别如下:

1、准确率

分类准确度主要通过计算分类正确的数据与数据总量之间的比值获得,其计算公式如下:
在这里插入图片描述

其中n_correct表示分类正确的样本数量,n_total表示总样本个数。

1、精确率

精确率是指对于分类为某种类属性标签的样本中实际分类正确的概率,则针对类属性标签0与类属性标签1,其精确率的计算方式分别为:
在这里插入图片描述

2、召回率

召回率主要是指将某种类属性标签分类正确的概率,与精确率以分类结果为比较依据不同,召回率是以实际结果作为比较依据,针对类属性标签0与类属性标签1,其召回率的计算方式分别为:
在这里插入图片描述

3、F1-score

F1-score是精确率与召回率的调和平均值,其计算公式为:
在这里插入图片描述

4、ROC曲线

在ROC曲线中,横轴表示假阳率(False Positive Rate),纵轴表示真阳率(True Positive Rate),假阳率表示被分类错误的负样本占负样本总数的比例,真阳率表示被分类正确的正样本占正样本总数的比例。当模型的分类效果越好时,此曲线越往图的左上角偏移,即使用ROC曲线的面积对分类结果的好坏进行评价,面积的取值范围在0到1之间。
在这里插入图片描述

5、多分类问题中的相关指标

多分类与二分类在进行上述指标的计算时存在的最大区别在于多分类首先需要针对每个不同的类属性标签进行计算,然后通过平均的方式获得最后的结果。目前常用的平均方式有三种,这三种分别为宏平均、微平均以及加权平均。
宏平均(Macro Average)为对所有类属性标签的计算结果进行算数平均,以精确率为例,宏平均的精确率计算公式为:
在这里插入图片描述

其中n表示类属性标签的类别总个数,Precision_i表示类属性标签i的精确率。
微平均(Micro Average)是指将所有的类属性标签预测情况进行综合相加计算,假设每种类别预测正确的个数为TP_i,预测错误的个数为FP_i,以精确率为例,微平均的精确率计算公式为:
在这里插入图片描述

加权平均(Weighted Average)则是根据每种类属性标签个数占总标签个数的比例来进行加权计算,以精确率为例,加权平均计算公式如下:
在这里插入图片描述

其中n_i表示类属性标签i的总个数,n_total表示类属性标签的总个数。
加权平均的原理与宏平均相同,区别在于加权平均更多的考虑到了每个类属性标签数量占总数量的比重,而微平均的计算原理与准确率的计算原理相似。

6、混淆矩阵

混淆矩阵(Confusion Matrix)是一种以矩阵的形式直接表现模型分类结果的方法,其矩阵的行与列分别表示实际的类属性标签与预测的类属性标签,通常通过绘图的形式对其进行描述,通过该矩阵可以直观的了解到实际类属性标签为i的样本被预测为类属性标签为j的样本的个数,下图为常见的混淆矩阵图,由此图可以看到,样本的个数与该矩阵块的颜色直接相关,颜色越深,则样本数量越大。
在这里插入图片描述

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

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

相关文章

十三、超时重试机制

目录 超时配置和重试机制 FeignClient 、Ribbon 、 Hystrix三个之间配置优先级的关系 配置常用属性 Ribbon超时和重试配置: Ribbon重试次数计算公式: FeignClient 超时配置: Hystrix超时配置: Hystrix超时计算公式: 超时配…

Android PickerView简单应用

1. Android-PickerView Android-PickerView这是一款仿iOS的PickerView控件,有时间选择器和选项选择器。 添加依赖项 implementation com.contrarywind:Android-PickerView:4.1.92. 时间选择器 Android-PickerView时间选择器使用Build模式来创建 var timePicker…

如何开展计算机相关的学术研究? - 易智编译EaseEditing

计算机科学是一门包括理论和应用两方面的学科,可以涉及各种领域,如人工智能、计算机视觉、机器学习、大数据、网络安全等等。开展计算机相关的学术研究需要以下步骤: 1.明确研究问题: 首先需要明确研究问题和目标。选择一个研究方…

5月15号软件资讯更新合集.....

Vue2 to Composition API 语法转换器 V2.0 版本更新 在线使用 网站 Gitee: vue2-to-composition-api vue2-to-composition-api 是一款可以将 Options API 转换成 Composition API 的在线应用工具,转换后直接导出 Script setup 内容,帮助 Vue2 项目减少…

VoxWeekly|The Sandbox 生态周报(20230508)

欢迎来到由 The Sandbox 制作的《VoxWeekly》。我们会在每周一发布这份周报,对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容,欢迎与朋友和家人分享。您还可以订阅我们的 Medium 、关注我们的 Twitter,并加入 Disco…

OpenCL编程指南-4.2矢量数据类型

矢量数据类型 OpenCL C还增加了对矢量数据类型的支持。矢量数据类型如下定义,首先是类型名,具体包括char、uchar、short、ushort、int、uint、float、long或ulong,后面是一个字面值n来定义矢量中的元素个数。对于所有矢量数据类型&#xff0…

ANR原理篇 - ANR信息收集过程

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、ANR日志信息收集过程ANR日志收集完整流程1.1 logcat中信息记录1.2 trace.txt文…

《微服务实战》 第九章 Gitlab使用

前言 微服务项目,常常需要多人协作完成工作,本章教程是介绍Gitlab使用,使多人协作告别低端的手动拷贝,也告别传统的SVN。 1、下载安装git https://git-scm.com/download/win 1.1、安装好以后,cmd中输入git 2、生成…

什么是Docker 【微服务框架】

Docker Docker如何解决依赖的兼容问题? 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离容器去运行,避免互相干扰 不同环境的操作系统不同,Docker如何解决&#…

(数字图像处理MATLAB+Python)第八章图像复原-第一、二节:图像复原概述和图像退化模型

文章目录 一:图像复原概述二:图像退化模型(1)连续退化模型(2)离散退化模型 三:图像退化函数的估计(1)基于模型的估计法(2)运动模糊退化估计 一&am…

理解JS的事件循环机制(Event Loop)

文章目录 一、前言二、首先理解三、灵魂三问1. JS为什么是单线程的?2. 为什么需要异步? (为什么要有事件循环机制?)3. 单线程又是如何实现异步的呢? 四、什么是事件循环?五、事件循环(Event Loop )执行顺…

哈工大软件架构与中间件作业1

《软件架构与中间件》作业1报告 ——作业1:软件架构 姓名: 石卓凡 学号: 120L021011 目录 项目介绍......................................................................................................…

混淆(Proguard R8)和反混淆

本篇来介绍下Android的混淆和反混淆,说起混淆,大家都会很自然地想到Proguard,此外还有R8。事实上,AGP3.3之后,官方默认使用R8做代码优化、混淆和压缩。ProGuard和R8常常用于混淆最终的Android项目,增加项目…

【加载更多 Objective-C语言】

一、咱们上午就做了两件事儿, 1.把我们的数据,加载起来, 2.实现了下面这个”加载更多“按钮的功能, 3.只不过,我们加载数据的时候,用了一个自定义cell, 那么,基本加载数据的办法,我就不再说了, 基本,就是那些步骤, 只是把我们自定义cell部分,再给大家复习一下…

【C语言】宏实现一个整数的二进制位的奇数位和偶数位交换

要写一个宏实现将一个整数的二进制位的奇数位和偶数位交换,我们首先要分析如何将一个整数的二进制位的奇数位和偶数位交换 以下以整数7为例 7的二进制: 0000 0000 0000 0000 0000 0000 0000 0111 7 奇数位与偶数位交换后为: 0000 0000 0000 …

一周狂赚50万,GPT-4帮你在线“脱单”,AI女友按分钟收费,在线男友数量多达1000+

电影情节照进现实 不知道大家有没有看过一部电影《她》,讲述的是在不远的未来人与人工智能相爱的科幻爱情电影。主人公西奥多和人工智能系统OS1的化身萨曼莎在相处中,发现彼此之间都存在双向的需求与欲望,人机友谊最终发展成为一段不被世俗理…

Zookeeper 分布式应用程序的分布式协调服务

老规矩学习一个新技术首先从它的官网入手:Apache ZooKeeper 概览 一谈到集群, 从结构上看: 主从集群:主从集群就可以做读写分离,写在主、读在从无主集群(比如redis cluster) 从数据上看&…

10---正则表达式匹配

给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: 输入:s…

JavaEE 数据链路层 以太网协议

网络原理补充-数据链路层与以太网协议 文章目录 JavaEE & 网络原理补充-数据链路层 & 以太网协议1. 以太网数据帧1.1 帧头帧尾1.2 类型1.3 载荷 2. IP数据报补充2.1 16位标识2.2 13位片偏移2.3 3位标识 3. DNS3.1 DNS原理3.2 DNS劫持或者污染 JavaEE & 网络原理补…

MongoDB 查询文档中使用文本选择器($text)

之前我们介绍过使用比较选择器、逻辑选择器、元素选择器、数组选择器查询文档,如果您需要进一步了解,可以参考: MongoDB 查询文档中使用比较选择器、逻辑选择器https://blog.csdn.net/m1729339749/article/details/129965699 MongoDB 查询文…