评估分类机器学习模型的指标
欢迎来到雲闪世界。一旦我们训练了一个监督机器学习模型来解决分类问题,如果这就是我们工作的结束,我们会很高兴,我们可以直接向他们输入新数据。我们希望它能正确地对所有内容进行分类。然而,实际上,模型做出的预测并非都是正确的。数据科学中有一句著名的名言,由一位英国统计学家创造:
“所有模型都是错误的,但有些模型是有用的。” CLEAR,James,1976 年。
那么,我们如何知道我们拥有的模型有多好呢?简而言之,我们通过评估模型预测的正确性来做到这一点。为此,我们可以使用几个指标。
2.模型如何做出预测?即模型如何对数据进行分类?

图 1:模型进行预测
假设我们已经训练了一个机器学习模型来对信用卡交易进行分类,并确定该交易是否为欺诈。该模型将使用交易数据并返回一个分数,该分数可以是 0 到 1 范围内的任意数字,例如 0.05、0.24、0.56、0.9875。在本文中,我们将定义一个默认阈值 0.5,这意味着如果模型给出的分数低于 0.5,则该模型将该交易归类为非欺诈(这是一个模型预测!)。如果模型给出的分数大于或等于 0.5,则该模型将该交易归类为欺诈(这也是一个模型预测!)。
实际上,我们不会使用默认值 0.5。我们会研究不同的阈值,以了解哪个阈值更适合优化模型的性能,但这个讨论留到以后再说。
3.混淆矩阵
混淆矩阵是可视化分类模型性能的基本工具。它有助于理解预测的各种结果,其中包括:
- 真正例 (TP)
- 假阳性(FP)
- 假阴性(FN)
- 真阴性 (TN)
让我们分解一下!
为了评估模型的有效性,我们需要将其预测与实际结果进行比较。实际结果也称为“现实”。因此,模型可能会将交易归类为欺诈,而事实上,客户会在同一笔交易中要求退款,声称他的信用卡被盗了。
在这种场景中,模型正确地将该交易预测为欺诈,即真正例(TP)。
在欺诈检测环境中,“正面”类别被标记为欺诈,“负面”类别被标记为非欺诈。
另一方面,当模型也将交易归类为欺诈时,就会出现假阳性(FP),但在这种情况下,客户没有报告其信用卡使用方面存在任何欺诈行为。因此,在这笔交易中,机器学习模型犯了一个错误。
真阴性(TN)是指模型将交易归类为非欺诈,而事实上,它不是欺诈。因此,模型做出了正确的分类。
假阴性(FN)是指模型将交易归类为非欺诈。但实际上,这是欺诈行为(客户报告了与该交易相关的信用卡欺诈活动)。在这种情况下,机器学习模型也犯了一个错误,但这是一种不同于假阳性的错误类型。
我们来看看图 2

图 2:混淆矩阵对欺诈机器学习模型进行分类
让我们看一个不同的案例,也许更容易理解。一项测试旨在判断患者是否感染了 COVID。见图 3。

图 3:COVID 测试的混淆矩阵
因此,对于每笔交易,您都可以检查它是 TP、FP、TN 还是 FN。您可以对数以亿计的交易执行此操作,并将结果写在 2x2 表格中,其中包含 TP、FP、TN 和 FN 的所有计数。此表也称为混淆矩阵。
假设您将 100,000 笔交易的模型预测与实际结果进行了比较,并得出了以下混淆矩阵(见图 4)。

图 4:混淆矩阵
4.评估模型性能的指标
了解了什么是混淆矩阵之后,我们准备探索用于评估分类模型性能的指标。
准确率 = TP / (TP + FP)
它回答了这样一个问题:所有预测中正确预测的比例是多少?它反映了预测的欺诈案例中真正是欺诈的比例。
用简单的语言来说:当模型称其为欺诈时,它确实是欺诈的比例是多少?
查看图 4 中的混淆矩阵,我们计算出准确率 = 76.09%,因为准确率 = 350 / (350 + 110)。
召回率 = TP / (TP + FN)
召回率又称为真实阳性率(TPR)。它回答了以下问题:在所有实际阳性结果中,正确预测的比例是多少?
简单来说,在所有实际的欺诈案例中,该模型正确抓住欺诈者的次数占比是多少?
使用图 4 中的混淆矩阵,召回率 = 74.47%,因为召回率 = 350 / (350 + 120)。
警报率 = (TP + FP) / (TP + FP + TN + FN)
这个指标也称为阻止率,有助于回答以下问题:所有预测中正面预测的比例是多少?
用简单的语言来说:模型预测某事是欺诈的次数占比是多少?
使用图 4 中的混淆矩阵,警报率 = 0.46%,因为警报率 = (350 + 110) / (350 + 110 + 120 + 99420)。
F1 分数 = 2x (精确度 x 召回率) / (精确度 + 召回率)
F1 分数是准确率和召回率的调和平均值。它是准确率和召回率之间的平衡指标,可提供单一分数来评估模型。
使用图 4 中的混淆矩阵,F1 分数 = 75.27%,因为 F1 分数 = 2*(76.09% * 74.47%)/(76.09% + 74.47%)。
准确度 = TP + TN / (TP + TN + FP + FN)
准确性有助于回答这个问题:所有交易中正确分类的交易占比是多少?
使用图 4 中的混淆矩阵,准确度 = 99.77%,因为准确度 = (350 + 120) / (350 + 110 + 120 + 99420)。

图 5:带有评估指标的混淆矩阵
5. 何时使用何种指标
准确度是评估许多分类机器学习模型的首选指标。然而,当目标变量不平衡时,准确度效果不佳。在欺诈检测中,通常只有极小比例的数据是欺诈性的;例如,在信用卡欺诈中,欺诈交易的比例通常不到 1%。因此,即使模型说所有交易都是欺诈性的(这是非常错误的),或者说所有交易都不是欺诈性的(这也是非常错误的),模型的准确度仍然会高于 99%。
那么在这些情况下该怎么办?准确率、召回率和警报率。这些通常是衡量模型性能的指标,即使数据不平衡。具体使用哪一个可能取决于您的利益相关者。我与利益相关者合作,他们说,无论你做什么,请保持至少 80% 的准确率。所以在这种情况下,利益相关者非常关心用户体验,因为如果准确率非常低,这意味着会有很多误报,这意味着模型会错误地阻止好客户,认为他们正在进行欺诈性信用卡交易。
另一方面,准确率和召回率之间存在权衡:准确率越高,召回率越低。因此,如果模型的准确率非常高,它就无法很好地发现所有欺诈案例。从某种意义上说,这还取决于欺诈案例给企业造成的损失(财务损失、合规问题、罚款等)与误报案例给企业造成的损失(客户生命周期,影响企业盈利能力)。
因此,在准确率和召回率之间的财务决策不明确的情况下,一个很好的指标是 F1 分数,它有助于在准确率和召回率之间取得平衡并对它们进行优化。
最后但并非最不重要的一点是,警报率也是一个需要考虑的关键指标,因为它可以直观地了解机器学习模型计划阻止的交易数量。如果警报率非常高,比如 15%,这意味着在客户下的所有订单中,15% 将被阻止,只有 85% 会被接受。因此,如果您的企业每天有 1,000,000 个订单,机器学习模型会阻止其中的 150,000 个订单,认为它们是欺诈交易。这是一个巨大的订单量,因此对欺诈案件的百分比有直觉很重要。如果欺诈案件约为 1% 或更少,那么阻止 15% 的模型不仅会犯很多错误,还会阻止很大一部分业务收入。
六,结论
了解这些指标可让数据科学家和分析师更好地解释分类模型的结果并提高其性能。准确率和召回率不仅比单纯的准确率更能洞悉模型的有效性,而且在欺诈检测等类别分布严重偏斜的领域尤其如此。
感谢关注雲闪世界。(亚马逊aws和谷歌GCP服务协助解决云计算及产业相关解决方案)
订阅频道(https://t.me/awsgoogvps_Host)
TG交流群(t.me/awsgoogvpsHost)
相关文章:
评估分类机器学习模型的指标
欢迎来到雲闪世界。一旦我们训练了一个监督机器学习模型来解决分类问题,如果这就是我们工作的结束,我们会很高兴,我们可以直接向他们输入新数据。我们希望它能正确地对所有内容进行分类。然而,实际上,模型做出的预测并…...
农机自动化:现代农业的未来趋势
随着人口的增长和农业生产的需求不断增加,提高农业生产效率成为现代农业的重要目标。农机自动化作为一种新兴技术,可以大幅度提升农机的使用效率和生产能力。农机自动化是指利用先进的传感技术、数据处理和人工智能技术,使农机能够自动完成农…...
25考研操作系统复习·1.1/1.2/1.3 操作系统的基本概念/发展历程/运行环境
目录 操作系统的基本概念 概念(定义) 功能和目标 资源的管理者 向上层提供服务 给普通用户的 给软件/程序员的 对硬件机器的拓展 操作系统的特征 操作系统的发展历程 操作系统的运行环境 操作系统的运行机制 中断和异常 中断的作用 中断的…...
如何培养学生的创新意识和实践能力
培养学生的创新意识和实践能力是一个复杂而系统的过程,涉及多个方面的努力和措施。以下是一些具体的做法: 一、培养学生的创新意识 提供创新环境: 为学生创造一个开放、自由、支持创新的学习环境,让他们能够自由地表达自己的想法…...
四、GD32 MCU 常见外设介绍(15)CAN 模块介绍
CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。 CAN总线协议已经成为汽车计算机控…...
AIGC大模型产品经理高频面试大揭秘‼️
近期有十几个学生在面试大模型产品经理(薪资还可以,详情见下图),根据他们面试(包括1-4面)中出现高频大于3次的问题汇总如下,一共32道题目(有答案)。 29.讲讲T5和Bart的区…...
【嵌入式笔记】【C语言】struct union
结构体(Struct)定义: struct 结构体名 {member1; // 成员1,可以是任何基本数据类型或复合类型member2; // 成员2... };//例如: struct Point {float x;float y;...
【初学人工智能原理】【9】深度学习:神奇的DeepLearning
前言 本文教程均来自b站【小白也能听懂的人工智能原理】,感兴趣的可自行到b站观看。 代码及工具箱 本专栏的代码和工具函数已经上传到GitHub:1571859588/xiaobai_AI: 零基础入门人工智能 (github.com),可以找到对应课程的代码 正文 深度…...
[RoarCTF 2019]Easy Calc1
打开题目 查看源码,看到 看到源代码有 calc.php,构造url打开 看到php审计代码, 由于页面中无法上传num,则输入 num,在num前加入一个空格可以让num变得可以上传,而且在进行代码解析时,php会把前…...
安卓APK安装包arm64-v8a、armeabi-v7a、x86、x86_64有何区别?如何选择?
在GitHub网站下载Android 安装包,Actions资源下的APK文件通常有以下版本供选择: 例如上图是某Android客户端的安装包文件,有以下几个版本可以选择: mobile-release.apk(通用版本,体积最大)mobi…...
【AI大模型】通义千问:开启语言模型新篇章与Function Call技术的应用探索
文章目录 前言一、大语言模型1.大模型介绍2.大模型的发展历程3.大模型的分类a.按内容分类b.按应用分类 二、通义千问1.通义千问模型介绍a.通义千问模型介绍b.应用场景c.模型概览 2.对话a.对话的两种方式通义千问API的使用 b.单轮对话Vue页面代码:Django接口代码 c.多…...
详细教程 MySQL 数据库 下载 安装 连接 环境配置 全面
数据库就是储存和管理数据的仓库,对数据进行增删改查操作,其本质是一个软件。 首先数据有两种,一种是关系型数据库,另一种是非关系型数据库。 关系型数据库是以表的形式来存储数据,表和表之间可以有很多复杂的关系&a…...
门控循环单元GRU
目录 一、GRU提出的背景:1.RNN存在的问题:2.GRU的思想: 二、更新门和重置门:三、GRU网络架构:1.更新门和重置门如何发挥作用:1.1候选隐藏状态H~t:1.2隐藏状态Ht: 2.GRU: 四、底层源码…...
程序员修炼之路
成为一名优秀的程序员,需要广泛而深入地学习多个领域的知识。这些课程不仅帮助建立扎实的编程基础,还培养了问题解决、算法设计、系统思维等多方面的能力。以下是一些核心的必修课: 计算机基础 计算机组成原理:理解计算机的硬件组…...
PHP时间相关函数
时间、日期 time()获取当前时间戳(10位)microtime(true)返回一个浮点时间戳data(格式,时间戳)日期格式化 $time time(); echo date(Y-m-d H:i:s, $time);strtotime&am…...
python进阶——python面向对象
前言 Python是一种面向对象的编程语言,可在Python中使用类和对象来组织和封装代码。面向对象编程(OOP)是一种编程范例,它将数据和操作数据的方法封装在一个对象内部,通过对象之间的交互来实现程序的功能。 1、面向对象…...
【无标题】vue2鼠标悬停(hover)时切换图片
在Vue 2中,要实现鼠标悬停(hover)时切换图片的功能,你不能直接在模板的:src绑定中处理这个逻辑,因为Vue的模板不支持条件渲染的复杂逻辑(如基于鼠标状态的动态图片切换)。但是,你可以…...
每天一个数据分析题(四百五十九)- 分析法
故障树分析法经常与哪些方法联合使用? A. 头脑风暴法 B. 五问法 C. 配对法 D. 引力法 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python,SQL,统计学…...
英语:十、助动词和情态动词
1、助动词 (1)助动词be a、助动词be人称、数及时态的变化 be在作助动词时,也和系动词一样,有人称、数及时态的变化。 人称 数 现在时态 过去时态 现在分词 过去分词 第一人称 单数 am was being been 复数 are w…...
DB2-Db2DefaultValueConverter
提示:Db2DefaultValueConverter 类的核心作用是在 Debezium 数据库连接器中处理 IBM DB2 数据库表列的默认值。当 Debezium 监控 DB2 数据库的更改时,它需要能够正确地理解和表示数据库表中列的默认值,尤其是在没有明确值的情况下插入新行时。…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
python读取SQLite表个并生成pdf文件
代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。 # 导入所需库 import sqlite3 # 用于操作…...
spring boot使用HttpServletResponse实现sse后端流式输出消息
1.以前只是看过SSE的相关文章,没有具体实践,这次接入AI大模型使用到了流式输出,涉及到给前端流式返回,所以记录一下。 2.resp要设置为text/event-stream resp.setContentType("text/event-stream"); resp.setCharacter…...
【大厂机试题解法笔记】矩阵匹配
题目 从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的最小值是多少。 输入描述 输入矩阵要求:1 ≤ K ≤ N ≤ M ≤ 150 输入格式 N M K N*M矩阵 输…...
Three.js + Vue3 加载GLB模型项目代码详解
本说明结合 src/App.vue 代码,详细解释如何在 Vue3 项目中用 three.js 加载并显示 glb 模型。 1. 依赖与插件导入 import {onMounted, onUnmounted } from vue import * as THREE from three import Stats from stats.js import {OrbitControls } from three/examples/jsm/co…...
