当前位置: 首页 > news >正文

评估分类机器学习模型的指标

       欢迎来到雲闪世界。一旦我们训练了一个监督机器学习模型来解决分类问题,如果这就是我们工作的结束,我们会很高兴,我们可以直接向他们输入新数据。我们希望它能正确地对所有内容进行分类。然而,实际上,模型做出的预测并非都是正确的。数据科学中有一句著名的名言,由一位英国统计学家创造:

“所有模型都是错误的,但有些模型是有用的。” 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,统计学&#xf…...

英语:十、助动词和情态动词

1、助动词 (1)助动词be a、助动词be人称、数及时态的变化 be在作助动词时,也和系动词一样,有人称、数及时态的变化。 人称 数 现在时态 过去时态 现在分词 过去分词 第一人称 单数 am was being been 复数 are w…...

DB2-Db2DefaultValueConverter

提示:Db2DefaultValueConverter 类的核心作用是在 Debezium 数据库连接器中处理 IBM DB2 数据库表列的默认值。当 Debezium 监控 DB2 数据库的更改时,它需要能够正确地理解和表示数据库表中列的默认值,尤其是在没有明确值的情况下插入新行时。…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

push [特殊字符] present

push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...