机器学习中常用的性能度量—— ROC 和 AUC

什么是泛化能力?

通常我们用泛化能力来评判一个模型的好坏,通俗的说,泛化能力是指一个机器学期算法对新样本(即模型没有见过的样本)的举一反三的能力,也就是学以致用的能力。

举个例子,高三的学生在高考前大量的刷各种习题,像五年高考三年模拟、三年高考五年模拟之类的,目的就是为了在高考时拿到一个好的分数,高考的题目就是新题,一般谁也没做过,平时的刷题就是为了掌握试题的规律,能够举一反三、学以致用,这样面对新的题目也能从容应对。这种规律的掌握便是泛化能力,有的同学很聪明,考上名校,很大程度上是该同学的泛化能力好。

在机器学习中,对于分类和回归两类监督学习,分别有各自的评判标准,这里我们讨论常用于分类任务的性能度量标准——AUC 和 ROC。


几个重要概念:混淆矩阵、准确率、精准率和召回率

1. 混淆矩阵

假设我们建立的是二分类模型,将实际类别和预测类别进行两两组合,就形成了混淆矩阵。

真实情况预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

接下来的性能度量指标都是由混淆矩阵的各个元素计算得来。

2. 准确率

准确率 = T P + T N T P + T N + F P + F N 准确率=\frac{TP+TN}{TP+TN+FP+FN} 准确率=TP+TN+FP+FNTP+TN

在样本均衡的情况下,准确率是一个适用的性能度量指标,但是,在样本不平衡的情况下,并不能很好的衡量结果。例如,在信用风险评估中,正样本为 90%,负样本(发生违约的样本)为 10%,样本严重失衡,在这种情况下,即使我们全部将样本预测为正样本,正确率也会达到 90%的高准确率。这也说明了,在样本失衡相对严重的情况下,即使准确率很高,结果也会有很大的水份,准确率指标会失效。

3. 查准率

查准率(Precision)又叫精准率,是指在所有被预测为正的样本中实际为正的样本的概率,即在预测为正的样本中,我们有多少把握可以预测正确:

查准率 = T P T P + F P 查准率=\frac{TP}{TP+FP} 查准率=TP+FPTP

查准率和准确率的区别在于:查准率代表对正样本结果中的预测精度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

4. 召回率

召回率(Recall)又叫查全率,指在实际为正的样本中被预测为正样本的概率。应用场景:在网贷信用风险评估中,相对好用户,我们更关心坏用户,不能错放任何一个坏用户,因为如果我们过多的将坏用户当成好用户,这样后续可能发生的违约金额会远超过好用户偿还的借贷利息金额,造成严重亏损。召回率越高,表示实际坏用户被预测出来的概率越高,即“宁可错杀一千,绝不放过一个。”

精准率 = T P / ( T P + F N ) 精准率=TP/(TP+FN) 精准率=TP/(TP+FN)

一般来说,查准率和召回率是一对矛盾的度量。查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
例如,若希望将好瓜尽可能多地选出来,则可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低;若希望选出的瓜中好瓜比率尽可能高,则可只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得查全率较低,通常只有在一些简单的任务中,才可能使查全率和查准率都很高。

如果想要在两者之间找到一个平衡点,通常会使用 F1 分数,它同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。

F 1 = 2 × 查准率 × 召回率 ( 查准率 + 召回率 ) F1=\frac{2 \times 查准率 \times 召回率}{(查准率+召回率)} F1=(查准率+召回率)2×查准率×召回率


ROC和AUC

1. 真正率和假正率

ROC 和 AUC 可以在无视样本不平衡的情况下进行性能度量,关键在于两个指标:真正率(TPR)和假正率(FPR),其中真正率也叫灵敏度(Sensitivity),假正率则为 1-特异度(Specifucity)。

真正率 ( T P R ) = 灵敏度 = T P T P + F N 真正率(TPR)=灵敏度=\frac{TP}{TP+FN} 真正率(TPR)=灵敏度=TP+FNTP
假正率 ( F R P ) = 1 − 特异度 = F P F P + T N 假正率(FRP)=1-特异度=\frac{FP}{FP+TN} 假正率(FRP)=1特异度=FP+TNFP

可以发现 TPR 和 FPR 分别是基于真实情况 1 和 0 出发的,即分别在真实情况下的正样本和负样本中来观察相关概率问题,正因为如此,所以无论样本是否平衡,都不会被影响。在之前的信用评估例子中,90% 为正样本,10% 为负样本,我们知道用准确率衡量结果是有水份的,但是用 TPR 和 FPR 不一样,这里,TPR 只关注 90% 正样本中有多少是真正被覆盖的,而与剩余 10% 无关,同理,FPR 只关注 10% 负样本中有多少是被错误覆盖的,也与其他 90% 毫无关系,所以可以看出:如果我们从实际表现的各个结果角度出发,就可以避免样本不平衡的问题了,这也是为什么选用 TPR 和 FPR 作为 ROC/AUC 指标的原因。

2. ROC-接受者操作特征曲线

ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线,最早应用于雷达信号检测领域,用于区分信号和噪声。后来人们将其用于评价模型的预测能力,ROC 曲线是基于混淆矩阵得出的。

ROC曲线中横坐标为假正率(FPR),纵坐标为真正率(TPR),是通过遍历所有阈值来绘制整条曲线的,当我们不断的遍历所有阈值,预测的正样本和负样本是不断变化,相应的在 ROC 曲线图中就会沿着曲线滑动。

在这里插入图片描述

改变阈值只是不断的改变正负样本数,即 TPR 和 FPR,但是曲线本身是不会改变的。那如何通过 ROC 来判断一个模型的好坏呢?我们知道 FRP 表示模型虚报的响应程度,TPR 表示模型预测响应的覆盖程度,一个好的模型虚报的越少越好,覆盖的越多越好,这就等价于 TPR 越高,同时 FPR 越低,即 ROC 曲线越陡时,模型的性能就越好。

在这里插入图片描述

之前已经讨论了 ROC 曲线为什么可以无视样本的不平衡,这里通过动图进行演示,可以发现:无论红蓝样本比率如何改变,ROC 曲线都没有影响。

在这里插入图片描述

3. AUC-曲线下面积

AUC 是一种基于排序的高效算法,取值越大,代表模型的预测效果越好,其一般判断标准为:

  • 0.5~0.7:效果较低;
  • 0.7~0.85:效果一般
  • 0.85~0.95:效果很好
  • 0.95~1:效果非常好,但很可能是过拟合导致的

skleanmetrics 对 ROC 和 AUC 的计算进行了实现。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

删除和清空Hive外部表数据

外部表和内部表区别 未被external修饰的是内部表(managed table),被external修饰的为外部表(external table); 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理; …

Rebuild企业管理系统 SSRF漏洞(CVE-2024-1021)

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

【人工智能】人工智能 – 引领未来科技的潮流

写在前面 引言红利挑战结论 引言 人工智能是指使计算机系统表现出类似于人类智能的能力。其目标是实现机器具备感知、理解、学习、推理和决策等智能行为。人工智能的发展可以追溯到上世纪50年代,随着计算机技术和算法的不断进步,人工智能得以实现。 今天…

Pymysql之Connection中常用API

Connection中常用API 1、open() :检测数据库是否连接。 connect.open:如果数据库连接返回Trhe,否则返回False。 2、ping(reconnectTrue) connect.ping(reconnectTrue):如果reconnectTrue表示连接断开后,重新进行连接。 import…

移动云ONAIR媒体云全解读!媒体内容数字化融合一站式解决方案

当下,传统媒体面临着诸多挑战,如何利用信息技术提升内容的质量、形式和分发效率,成为媒体行业的迫切需求。移动云作为数字中国建设的“主力军”, 立足于新兴媒体与云计算市场的变化与需求,推出了ONAIR 媒体云解决方案&…

【FPGA】高云FPGA之IP核的使用->PLL锁相环

FPGA开发流程 1、设计定义2、设计输入3、分析和综合4、功能仿真5、布局布线6、时序仿真7、IO分配以及配置文件(bit流文件)的生成8、配置(烧录)FPGA9、在线调试 1、设计定义 使用高云内置IP核实现多路不同时钟输出 输入时钟50M由晶…

postman执行批量测试

1.背景 有许多的人常常需要使用第三方系统进行重复的数据查询,本文介绍使用PostMan的方式对数据进行批量的查询,减少重复的劳动。 2.工具下载 3.初入门 一、如图示进行点击,创建collection 二、输入对应的名称 三、创建Request并进行查…

Tomcat之虚拟主机

1.创建存放网页的目录 mkdir -p /web/{a,b} 2.添加jsp文件 vi /web/a/index.jsp <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <html> <head><title>JSP a page</title> </head> …

音视频色彩:RGB/YUV

目录 1.RGB 1.1介绍 1.2分类 1.2.1RGB16 1)RGB565 2)RGB555 1.2.2RGB24 1.2.3RGB222 2.YUV 2.1介绍 2.2分类 2.2.1 YUV444 2.2.2 YUV 422 2.2.3 YUV 420 2.3存储格式 2.3.1 YUYV 2.3.2 UYVY 2.3.3 YUV 422P 2.3.4 YUV420P/YUV420SP 2.3.5 YU12 和…

每日一题——LeetCode1422.分割字符串的最大得分

方法一 暴力枚举 枚举所有分割点的情况&#xff0c;取最大得分 var maxScore function(s) {let res 0;const n s.length;for (let i 1; i < n; i) {let score 0;for (let j 0; j < i; j) {if (s[j] 0) {score;}}for (let j i; j < n; j) {if (s[j] 1) {sco…

druid配置wall导致无法批量sql

1、现象 2、原配置 spring:autoconfigure:exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfiguredatasource:druid:stat-view-servlet:enabled: trueloginUsername: ***loginPassword: ***allow:web-stat-filter:enabled: truefilter:wall:conf…

案例分享:频域与时域仿真的区别

从信号与系统理论中,可以知道,对于占空比为50%的周期信号,只含有奇次谐波,实际中,时钟信号并不是理想的占空比为50%的梯形波,因此,会同时含有奇偶次谐波,一个典型的案例,DDR仿真中,如果用模拟的理想激励源,如下图所示,可以发现,频谱中只会存在基频及其奇次谐波。 …

微软.NET6开发的C#特性——接口和属性

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;看到不少初学者在学习编程语言的过程中如此的痛苦&#xff0c;我决定做点什么&#xff0c;下面我就重点讲讲微软.NET6开发人员需要知道的C#特性&#xff0c;然后比较其他各种语言进行认识。 C#经历了多年发展…

【lesson47】进程通信之system V(共享内存)补充知识

文章目录 补充知识 补充知识 进行通信的key值问题&#xff0c;进程要通信的对方进程怎么能保证对方能看到&#xff0c;并且看到的就是该进程创建的共享内存的。 所以就通过key值来标识共享内存&#xff0c;key值是几不重要&#xff0c;只要在系统里是唯一的即可。 这样server和…

Vue CLI学习笔记

在看任何开源库的源码之前&#xff0c;必须先了解它有哪些功能&#xff0c;这样才能针对性地分模块阅读源码。 Vue CLI 简介 Vue CLI是Vue.js的官方命令行工具&#xff0c;它是一个基于Vue.js进行快速开发的完整系统。 通过Vue CLI&#xff0c;开发者可以快速搭建和开发Vue.js项…

python介绍,安装Cpython解释器,IDE工具pycharm的使用

python介绍 官方的Python解释器本质是基于C语言开发的一个软件&#xff0c;该软件的功能就是读取以py.结尾的文件内容&#xff0c;然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种C实现的解释器被称为Cpython。 python解释器的种类&#xff1a;Jython IPyth…

postgresql迁移到mysql

1.工具方法&#xff1a;Navicat Premium16 2. 手工方法&#xff1a; 迁移流程 下面是将 Postgresql 数据库迁移到 MySQL 的步骤流程&#xff1a; 步骤描述1. 创建MySQL表结构在MySQL中创建与Postgresql中的表结构相同的表2. 导出Postgresql数据将Postgresql中的数据导出为SQ…

【Qt Design】界面介绍

文章目录 前言Widget Box&#xff08;工具箱&#xff09;对象查看器Qt Design属性编译器sizePolicy内容 信号/槽编辑器资源浏览器ui文件编辑完窗口后查看代码在Pycharm中添加QtDesign 前言 Widget Box&#xff08;工具箱&#xff09; 提供很多控件 对象查看器 对象查看区域…

文献速递:肿瘤分割---- 弱监督肝肿瘤分割,使用Couinaud区段标注

文献速递&#xff1a;肿瘤分割---- 弱监督肝肿瘤分割&#xff0c;使用Couinaud区段标注 01 文献速递介绍 肝癌是世界上导致癌症死亡的主要原因之一&#xff0c;也是第二大常见的癌症死因。本稿件于2021年10月28日收到&#xff0c;2021年11月24日修订&#xff0c;2021年12月1…

idea开发工具的简单使用与常见问题

1、配置git 选择左上角目录file->setting 打开&#xff0c;Version Control 目录下Git&#xff0c;选择git安装目录下的git.exe文件&#xff1b; 点击test&#xff0c;出现git版本&#xff0c;则表示git识别成功&#xff0c;点击右下角确认即可生效。 2、配置node.js 选…