评估分类机器学习模型的指标
欢迎来到雲闪世界。一旦我们训练了一个监督机器学习模型来解决分类问题,如果这就是我们工作的结束,我们会很高兴,我们可以直接向他们输入新数据。我们希望它能正确地对所有内容进行分类。然而,实际上,模型做出的预测并非都是正确的。数据科学中有一句著名的名言,由一位英国统计学家创造:
“所有模型都是错误的,但有些模型是有用的。” 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 数据库的更改时,它需要能够正确地理解和表示数据库表中列的默认值,尤其是在没有明确值的情况下插入新行时。…...
别再让模型在Unity里‘抽风’了!Blender导出FBX到Unity的7步避坑自查清单
别再让模型在Unity里‘抽风’了!Blender导出FBX到Unity的7步避坑自查清单当你花了三天三夜精心雕琢的Blender模型,导入Unity后却变成了一团旋转错乱、贴图闪烁的"抽象艺术",那种崩溃感每个3D开发者都懂。本文将用实战经验帮你建立一…...
ARMv8 HFGITR_EL2寄存器解析与虚拟化指令陷阱控制
1. AArch64 HFGITR_EL2寄存器架构解析HFGITR_EL2(Hypervisor Fine-Grained Instruction Trap Register)是ARMv8架构中专门用于指令级陷阱控制的系统寄存器,属于虚拟化扩展的重要组成部分。这个64位寄存器通过位映射机制实现对特定AArch64指令…...
搞定这 5 个全栈电商项目,面试别再用 Todo-List 凑数了
找独立开发练手项目或者写简历项目时,最忌讳两件事:一是太简单(纯前端 Mock 数据,点两下就没了),二是太假(一上来就硬套微服务、消息队列、高并发,结果自己根本Hold不住)…...
双系统Ubuntu磁盘告急?别重装!用GParted无损扩容保姆级教程(附U盘启动盘制作)
双系统Ubuntu磁盘告急?别重装!用GParted无损扩容保姆级教程(附U盘启动盘制作)当你在Windows和Ubuntu双系统环境下工作时,是否遇到过这样的窘境:当初安装时给Ubuntu分配的空间捉襟见肘,而Windows…...
碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理
碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为碧蓝…...
【与我学 ClaudeCode】协作篇 之 Worktree + Task Isolation :目录隔离的并行执行通道
作者:逆境不可逃 技术永无止境 希望我的内容可以帮助到你!!!! 大家吼 ! 我是 逆境不可逃 今天给大家带来文章《【与我学 ClaudeCode】协作篇 之 Worktree Task Isolation :目录隔离的并行执行通道》. Le…...
AI圈内火热的Agent、MCP、Skill、CLI是啥?用装修房子讲透,看完秒懂
本文用装修房子的比喻,详细解释了AI领域的四个核心概念:Agent如同会自主规划任务的私人助理;MCP是AI与外部工具数据的统一接口,类似USB-C;Skill是指导AI按标准操作执行的手册;CLI则是不依赖图形界面的命令行…...
LaTeX公式一键转Word:3步告别数学公式编辑烦恼
LaTeX公式一键转Word:3步告别数学公式编辑烦恼 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 还在为Word文档中的数学公式编辑而抓狂…...
基于SMD与贝壳的微型音频装置:从电路设计到嵌入式开发的完整实践
1. 项目概述:一个藏在贝壳里的声音世界你小时候有没有捡起一个海螺壳,把它贴在耳边,然后听到里面传来“呜呜”的海风声?那个瞬间,仿佛整个海洋都被装进了小小的贝壳里。今天这个项目,就是把那个童年的魔法&…...
League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理?
League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理? 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Leag…...
