【机器学习】PR曲线F1评分ROC曲线AUC

news/2024/10/22 13:32:23/

参考:《百面机器学习》

PR曲线

TP( True Positive):真正例

FP( False Positive):假正例

FN(False Negative):假反例

TN(True Negative):真反例

精确率(Precision): Precision=TPTP+FPPrecision=\frac{TP}{TP+FP}Precision=TP+FPTP

召回率(Recall): Recall=TPTP+FNRecall=\frac{TP}{TP+FN}Recall=TP+FNTP

精确率(Y),也称为查准率,衡量的是分类正确的正样本个数占分类器判定为正样本的样本个数的比例

召回率(X),也称为查全率,衡量的是分类正确的正样本个数占真正的正样本个数的比例。

F1-score

F1 score是分类问题中常用的评价指标,定义为精确率(Precision)和召回率(Recall)的调和平均数。
F1=21Precision+1Recall=2×Precision×RecallPrecision+RecallF1=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}}=\frac{2×Precision×Recall}{Precision+Recall} F1=Precision1+Recall12=Precision+Recall2×Precision×Recall

F1 score 综合考虑了精确率和召回率,其结果更偏向于 Precision 和 Recall 中较小的那个。可以更好地反映模型的性能好坏,而不是像算术平均值直接平均模糊化了 Precision 和 Recall 各自对模型的影响。

补充另外两种评价方法:

加权调和平均:

上面的 F1 score 中, Precision 和 Recall 是同等重要的,而有的时候可能希望我们的模型更关注其中的某一个指标,这时可以使用加权调和平均:
Fβ=(1+β2)11Precision+β2×1Recall=(1+β2)Precision×Recallβ2×Precision+RecallF_{\beta}=(1+\beta^{2})\frac{1}{\frac{1}{Precision}+\beta^{2}×\frac{1}{Recall}}=(1+\beta^{2})\frac{Precision×Recall}{\beta^{2}×Precision+Recall} Fβ=(1+β2)Precision1+β2×Recall11=(1+β2)β2×Precision+RecallPrecision×Recall
β>1\beta > 1β>1 时召回率有更大影响, β<1\beta < 1β<1 时精确率有更大影响, β=1\beta = 1β=1 时退化为 F1 score。

F2,召回率权重更高,F0.5,精确率权重更高。
(根据式子可以看出β\betaβ越大,P就可以小一些,也就是不重要)

几何平均数:
G=Precision×RecallG=\sqrt{Precision×Recall} G=Precision×Recall

ROC曲线

真阳性率(True Positive Rate):TPR=TPP=TPTP+FNTPR =\frac{TP}{P}=\frac{TP}{TP+FN}TPR=PTP=TP+FNTP

假阳性率(False Positive Rate,FPR):FPR=FPN=FPFP+TNFPR =\frac{FP}{N}=\frac{FP}{FP+TN}FPR=NFP=FP+TNFP

真阳性率(Y),也称为灵敏度,衡量的是分类正确的正样本个数占真正的正样本个数的比例

假阳性率(X),也称为特异度,衡量的是错误识别为正例的负样本个数占真正的负样本个数的比例。

img

AUC

参考链接:AUC的计算方法及相关总结
AUC=∑i∈positiveclass rank⁡i−M(1+M)2M×NA U C=\frac{\sum_{i \in \text { positiveclass }} \operatorname{rank}_{i}-\frac{M(1+M)}{2}}{M \times N} AUC=M×Ni positiveclass ranki2M(1+M)
AUC指的是ROC曲线下的面积大小,该值能够反映基于ROC曲线衡量出的模型性能。AUC越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。

参考链接

如何理解机器学习和统计中的AUC?

PR和ROC对比

  • 当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。

    ROC曲线能够尽量降低不同测试集带来的干扰,在正负样本不平衡时,更能反映模型本身的特性

  • 如果研究者希望更多地看到模型在特定数据集上的表现,P-R曲线则能够更直观地反映其性能。


http://www.ppmy.cn/news/10249.html

相关文章

windows下安装不同版本Python教程

前言 博主也是很长一段时间没有更新文章了吧&#xff0c;因为最近都在忙着升级我的API管理系统&#xff0c;还有准备会考&#xff0c;时隔大概一个月&#xff0c;我带来了本次文章&#xff0c;如何在windows系统下安装多个版本Python&#xff0c;且各版本Python有不同的全局命…

基于Java-SpringBoot+vue实现的前后端分离信息管理系统设计和实现

基于Java-SpringBootvue实现的前后端分离信息管理系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言…

《UEFI内核导读》SecCore与PeiCore简介(I)

敬请关注&#xff1a;“固件C字营 SecCore也被称之为VTF&#xff0c;被映射到Boot Firmware Volume (BFV)&#xff0c;BFV的地址被放置在0xFFFFFFFC连续的4个字节&#xff08;小端模式&#xff09;。 SecCore 是一个FFS firmware file&#xff0c;其文件末端地址与于BFV的末端…

Rabbit MQ的基本使用

目录 1. MQ是什么&#xff0c;有哪些作用&#xff1f; 2. 主要的MQ框架有哪些&#xff1f; 3. RabbitMQ安装 4. RabbitMQ中的主要概念 5. 消息队列的核心概念 6. 一个简单的生产者和消费者示例。 1. MQ是什么&#xff0c;有哪些作用&#xff1f; 消息队列(Message Queue&a…

C 程序设计教程(04)—— C 语言的数据类型(二):构造数据类型

C 程序设计教程&#xff08;04&#xff09;—— C 语言的数据类型&#xff08;二&#xff09;&#xff1a;构造数据类型 该专栏主要介绍 C 语言的基本语法&#xff0c;作为《程序设计语言》课程的课件与参考资料&#xff0c;用于《程序设计语言》课程的教学&#xff0c;供入门…

电子书销售是一种可以躺赚的商业模式么?

文章目录前言调研后的结论电子书销售市场规模到底有多大&#xff1f;电子书产业链电子书阅读平台电子书销售平台国外国内其它销售模式探讨创建电子书创建电子书的工具电子书下载好去处相关法规前言 不知何时&#xff0c;有了网赚一词&#xff0c;例如去各大平台撸羊毛薅羊毛&a…

java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

java springbootmybatis电影售票网站管理系统前台后台设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言…

Java初识泛型 | 如何通过泛型类/泛型方法实现求数组元素最大值?

目录 一、引言 二、编程分析 1、泛型类实现 思路 代码 2、泛型方法实现 思路 代码 三、拓展&#xff1a;数组排序&#xff08;以冒泡排序为例&#xff09; 1、int类型 原代码 2、泛型类 3、泛型方法 一、引言 给定一个整型数组&#xff0c;求数组中所有元素的最大…