【机器学习】分类模型的评价方法

news2024/10/7 18:20:06

🌻个人主页:相洋同学
🥇学习在于行动、总结和坚持,共勉!

#学习笔记#

目录

一、混淆矩阵(Confusion Matrix)

二、评估指标(Evaluation metrics)

1.正确率(accuracy)

2.精准率(precision)

3.召回率(recall)

4.调和平均值(F1)

 三、ROC、AUC与P-R曲线

1.ROC曲线

2.AUC

3.P-R曲线


一、混淆矩阵(Confusion Matrix)

混淆矩阵可以用来评估分类模型的正确性,该矩阵是一个方阵,矩阵的数值用来表示模型预测结果与真实结果的对比统计。包括真正例(True Positive)、假正例(False Positive)、真负例(True Negative)、假负例(False Negative)。

 通过上图我们不难得出以下几点结论:

1.竖着来看,正正例(TP)+假负例(FN)= 预测为正样本的数量,假正例(FP)+ 真负例(TN)= 预测为负样本的数量;

2.横着来看,真正例(TP)+ 假正例(FP)= 正样本的数量。假负例(FN)+ 真负例(TN)= 负样本的数量。

3.整体来看,真正例(TP)+ 假正例(FP)+ 假负例(FN)+ 真负例(TN) = 所有样本数量

如何确定正样本和负样本?

一般来我们规定样本少的为正样本,或我们更关注的为正样本。例如垃圾邮件检测中的垃圾邮件,癌症筛查中的癌症患者。

二、评估指标(Evaluation metrics)

从混淆矩阵中可以得到更高级的分类指标,不同的指标在不同场景中发挥作用。

1.正确率(accuracy)

正确率的定义:

 简单来说就是所有预测对的占所预测的数量

2.精准率(precision)

精准率的定义如下:

即正确预测为正的数量占所有预测为正的数量,又称查准率。在垃圾邮件或垃圾短信识别中比较看重

3.召回率(recall)

召回率的定义如下:

即正确预测为正的数量占所有为正的数量,又称查全率,可以理解为宁可错杀一百也不放过一个,在癌症排查,或者流行病筛查中比较看重

4.调和平均值(F1)

F1定义为精确率预召回率的调和平均值:

 三、ROC、AUC与P-R曲线

1.ROC曲线

使用图形来描述二分类系统的性能表现。图形的纵轴为正正例率(TPR--True Positive Rate),横轴为家正例率(FPR--False Positive Rate)。其中,真正例率与加正例率定义为:

 

 ROC曲线通过真正例率(TPR)与假正例率(FPR)两项指标,可以用来评估分类模型的性能。真正例率与假正例率可以通过移动分类模型的阈值进行计算。随着阈值的改变。真正例率与假负例率也会随之发生改变,进而就可以在ROC曲线坐标上形成多个点

随着阈值的降低,TPR与FPR都会增大,重要的是,看谁增长的更快,如果TPR增长的更快,则曲线越想上凸,模型的分类效果越好。

2.AUC

AUC(Area Under the Curve)是指ROC曲线下的面积,在比较多个分类模型效果时,会比ROC曲线更加直观。

3.P-R曲线

模型在不同的阈值下,会对应不同的精准率与召回率,我们以横轴为召回率,纵轴为精准率,将这些点连成线就构成了P-R(Precision-recall)曲线。

P-R曲线上的点体现为不同阈值下,精准率与召回率的对应关系

关于P-R曲线,说明如下

(1)精准率与召回率无法同时增大,一个增大时,另一个可能就会降低

(2)随着召回率的增加,精准率一定会呈现下降的趋势

(3)当对精准率或召回率具有定量要求时,P-R曲线就会非常有用

以上

学习在于行动,总结和坚持,共勉

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

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

相关文章

HCIP—OSPF课后练习一

本实验模拟了一个企业网络场景,R1、R2、R3为公司总部网络的路由器,R4、R5分别为企业分支机构1和分支机构2的路由器,并且都采用双上行方式与企业总部相连。整个网络都运行OSPF协议,R1、R2、R3之间的链路位于区域0,R4与R…

数据分析-Pandas的直接用Matplotlib绘图

数据分析-Pandas的直接用Matplotlib绘图 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表…

Swift 面试题及答案整理,最新面试题

Swift 中如何实现单例模式? 在Swift中,单例模式的实现通常采用静态属性和私有初始化方法来确保一个类仅有一个实例。具体做法是:定义一个静态属性来存储这个单例实例,然后将类的初始化方法设为私有,以阻止外部通过构造…

[java基础揉碎]多态参数

多态参数 方法定义的形参类型为父类类型,实参类型允许为子类类型 例子: 定义一个员工类, 有名字和工资两个属性, 有年工资的方法 定义一个普通员工继承了员工类 , 重写了年工资的方法 定义一个经理类, 也继承了员工类, 同时经理多以了一个奖金的属性, 重写的年…

Ubuntu 如何安装 Beyond Compare?

Ubuntu20.04安装Beyond Compare 4.3.7 一、官网下载方式一:方法二:使用 .deb 包安装 二、安装相关依赖和bcompare三、破解常见错误解决方法 ) 文件比较工具Beyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件…

JUnit 面试题及答案整理,最新面试题

JUnit中的断言(Assert)有哪些类型? JUnit提供了多种断言类型来帮助测试代码的正确性。常见的断言类型包括: 1、assertEquals: 用于检查两个值是否相等。如果不相等,测试失败。 2、assertTrue和assertFal…

监控系统prometheus+grafana+发送告警信息

1、基础环境准备两台或更多的主机 2、关闭selinux vi /etc/selinux/config,修改SELINUX的值为disabled 3、关闭防火墙 systemctl disable firewalld systemctl stop firewalld 4、prometheus官网下载 https://prometheus.io/download/ 5、grafana官网下载 https…

HTML语法基础

1.HTML是什么 HTML是超文本标记语言,标准通用标记语言下的一个应用。 “超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分&…

如何在“Microsoft Visual Studio”中使用OpenCV编译应用程序

返回目录:OpenCV系列文章目录(持续更新中......) 前一篇:OpenCV4.9.0在windows系统下的安装 后一篇: 警告: 本教程可以包含过时的信息。 我在这里描述的所有内容都将适用于 OpenCV 的C\C接口。我首先假…

在centos8中部署Tomcat和Jenkins

参考链接1:tomcat安装和部署jenkins_jenkins和tomcat-CSDN博客 参考链接2:--配置开机启动tomcat文件 x​​​​​​超详细:Centos8安装Tomcat并配置开机自动启动_centos设置tomcat开机自启-CSDN博客文章浏览阅读4.4k次,点赞4次&…

爱奇艺 CTR 场景下的 GPU 推理性能优化

01 背景介绍 GPU 目前大量应用在了爱奇艺深度学习平台上。GPU 拥有成百上千个处理核心,能够并行的执行大量指令,非常适合用来做深度学习相关的计算。在 CV(计算机视觉),NLP(自然语言处理)的模型…

判断一个时间序列中每个元素的年份是否为闰年

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断一个时间序列中 每个元素的年份是否为闰年 Series.dt.is_leap_year 选择题 以下代码的输出结果中正确的是? import pandas as pd ts pd.Series(pd.date_range("2024-03-17",…

ARM 汇编指令:(七) STM/LDM多寄存器加载/多存储指令

目录 一.四种栈 1.满增栈:进栈(先移动指针再入栈,指针往地址增大的方向移动);出 栈(先出栈,栈指针往地址减小的地方移动)。 2.满减栈:进栈(先移动指针再入…

android studio设置flutter和dart的sdk配置

提示没有配置dart sdk的时候,其实只需要配置一下flutter的sdk就可以了,因为flutter的安装包里面包含了dart的sdk: 按照提示选中这个flutter的安装包路径就可以了: 并且需要开启windows的开发者开关:start ms-settings:…

【代码随想录】【回溯算法】补day25:组合总和,电话号码的总和

组合总和 def backtracking2(self, n: int, k: int, startindex: int, targetsum, sum):# 递归的终止条件if sum > targetsum:returnif len(self.path) k and sumtargetsum:self.result.append(self.path[:]) # 结果拷贝return self.result# for i in range(startindex,n1…

Java Web项目—餐饮管理系统Day06-套餐管理(一)

文章目录 1. 需求分析与实体类准备2. 依据菜品分类或者名字进行查询的请求(需求B)3. 新增套餐 1. 需求分析与实体类准备 如上图为新增套餐的界面, 它包含了套餐的一些基本信息, 例如名称、价格等, 同时还有套餐分类(因此这里需要一个查询所有套餐分类的请求处理方法, 需求A). 以…

layui table列表重载后保持进度条位置不变

使用layui的table表格组件时,当我们操作了某行的修改后,刷新了页面,进度条则跳回到最上面。 除了layui高版本应该内置有方法解决了此问题,但是低版本需要另外想办法解决。 具体解决方式如下: 1.在编辑操作成功前&am…

量子磁场测量“碰上”脑科学,未磁科技无创脑功能成像系统研发成功

从微观的神经元活动到宏观的认知行为,脑科学探索着人类最神秘、最复杂的领域之一。在这个过程中,科研人员、医生和创业者们扮演着至关重要的角色。他们不仅致力于揭示大脑的奥秘,更将科研成果转化为实际应用,推动脑科学领域的进步…

【SQL Server】实验七 数据完整性

1 实验目的 掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。掌握完整性约束的运行检查机制。掌握参照完整性的级联删除和修改方法。掌握正确设计关系模式完整性约束的方法。 2 实验内容 2.1 掌握实体完整性约束的创建和使用方法 创建表时定义由一个属性组成…

宜搭faas服务器获取accessToken

可以用faas服务器的OpenAPIUtil.getCustomAccessTokenThenCache(Client ID,Client Secret)就可以获取 至于获取这个Client ID,Client Secret 就需要在钉钉开放平台创建一个应用 然后在这个应用的基础信息里面有 注意的是:如果需要…