算法的评价标准:ROC,假阳性,mape

article/2025/9/16 21:03:49
名称含义公式
真阳率\召回率\查全率\TPR\Recall表示正确预测的正样本与全部正样本的比值 a a + c \frac{a}{a+c} a+ca
假阳性率\FPR表示负样本被预测为正样本与全部负样本的比值 b b + d \frac{b}{b+d} b+db
精确率\查准率\Precision\表示正确预测的正样本与预测为正样本的比值 a a + b \frac{a}{a+b} a+ba
准确率\accuracy表示正确预测的正、负样本与全部样本的比值 a + d a + b + c + d \frac{a+d}{a+b+c+d} a+b+c+da+d
F1\H-mean值F1对Precision和Recall都进行了加权 \frac{}{}

1,ROC曲线
去医院做检查化验单或报告单会出现(+)跟(-),其分别表型阳性和阴性。比如你去检查是不是得了某种病,阳性(+)就说明得了,阴性(-)就说明没事。
科研人员在设计这种检验方法的时候希望知道,如果这个人确实得了病,那么这个方法能检查出来的概率是多少呢(真阳率)?如果这个人没有得病,那么这个方法误诊其有病的概率是多少呢(假阳率)?
如下表1所示:
这里写图片描述

金标准就是实际中的病人阳性和阴性的情况,某筛选方法就是我们预测阳、阴性所采用的方法。
TP(True positive):正确预测为正样本
FN(False Negative):错误预测为负样本
FP(False positive):错误预测为正样本
TN(True Negative):正确预测为负样本
真阳率(True Positive Rate, TPR)或者叫召回率:表示正确预测的正样本与全部正样本的比值
真 阳 率 = a a + c 真阳率 = \frac{a}{a+c} =a+ca
表示在所有的阳性病人中被正确预测为阳性的概率。
假阳性率(False Positive Rate, FPR)表示负样本被预测为正样本与全部负样本的比值
假 阳 性 = b b + d 假阳性=\frac{b}{b+d} =b+db
表示在所有的阴性病人中被预测为阳性的概率。

这里写图片描述
ROC曲线,就是把假阳率当x轴,真阳率当y轴画一个二维平面直角坐标系。通过不断调整检测方法(或机器学习中的分类器)的阈值,即最终得分高于某个值就是阳性,反之就是阴性,得到不同的真阳率和假阳率数值,然后描点。就可以得到一条ROC曲线。
对于ROC曲线做如下说明:
(1)ROC曲线上的每一个点对应于一个threshold,大于这个值的实例划归为正类,小于这个值则划到负类中.
Threshold最大时,把每个实例都预测为负类, TPR=0,FPR=0,对应于原点;
Threshold最小时,,把每个实例都预测为正类,TPR=1,FPR=1,对应于右上角的点(1,1)
假设阈值为thred;带预测的样本x通过某种算法得到的分数为score_x;

if(score_x>thred) x为正样本;
if(score_x<=thred) x为负样本;

那么当thred非常大的时候,所有样本都被预测为负样本,即a=0,b=0 因此:真阳率和假阳性都为0.
那么当thred非常小的时候,所有样本都被预测为正样本,即c=0,d=0 因此:真阳率和假阳性都为1.
可以根据对灵敏度和特异度的特定要求,确定ROC曲线一适当的工作点,确定最好的决策阈值。
(2)理想情况下,TPR应该接近1,FPR应该接近0。
一个好的分类模型应该尽可能靠近图形的左上角,
而一个随机猜测模型应位于连接点(TPR=0,FPR=0)和(TPR=1,FPR=1)的主对角线上。
(3) ROC曲线下方的面积(AUC)提供了评价模型平均性能的另一种方法。如果模型是完美的,那么它的AUG = 1,如果模型是个简单的随机猜测模型,那么它的AUG = 0.5,如果一个模型好于另一个,则它的曲线下方面积相对较大。
ROC曲线可以全面评分类器的性能。
注意:认真的读者也许会感慨左上角的说法有些含糊,所谓“曲线左上角”至少有3种判断方式:a,曲线与斜率为1的切点;b,曲线经过(0,1)和(1,0)两点直线的交点;c,曲线上与(0,1)点绝对距离最近的点。从数学上讲,由于ROC曲线并非规则曲线,这3点未必永远合一。

AUC(Area Under Curve)顾名思义,就是这条ROC曲线下方的面积了。越接近1表示分类器越好。
所以对于多种预测方法的优劣判断可以在一个坐标下画他们的ROC曲线,然后通过计算他们的AUC来进行判断。

2,F1评分
还是依表1为依据,精确(Precision)为:
P r e = a a + b Pre=\frac{a}{a+b} Pre=a+ba
表示预测为阳性的样本中真正为阳性的概率。
而真阳率(True Positive Rate, TPR)又成为召回率(Recall):
R e c = a a + c Rec=\frac{a}{a+c} Rec=a+ca
F1是将准确率和召回率结合在一起,如下所示:
F 1 = 2 P r e ∗ R e c P r e + R e c F1=\frac {2Pre * Rec} {Pre + Rec} F1=Pre+Rec2PreRec

3,P-R曲线
对于算法的评估来说当然希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。比如极端情况下,我们只搜索出了一个结果,且是准确的,那么a=1,b=0,所以Precision就是100%;但是c为全部‘全部阳性样本-1’,那么Recall就很低了。
而如果我们把所有结果都返回,即都预测结果都是阳性,那么c=0,a和b都很大,那么Recall是100%,但是Precision就会很低。因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高。高的recall就是‘宁杀错不放过’
根据同一份数据根据阈值的不同,可以得到下图,其中红色虚线是召回率,暗红色曲线是准确率。
在这里插入图片描述
当thres很大时,很多样本都判断为负样本,因此a,b都很小,c很大,因此召回率很低,准确率中a,b都很小,只有分数非常高的样本才会被判定为正样本,a与a+b的比值几乎相等,所以准确率很高。

3,rmse、mape平均绝对百分误差

R M S E = 1 n ∑ t = 1 n ( y t − p r e t ) 2 RMSE=\sqrt{\frac{1}{n}\sum_{t=1}^n(y_t-pre_t)^2} RMSE=n1t=1n(ytpret)2
y t y_t yt表示样本t的真实值, p r e t pre_t pret表示样本t的预测值。
rmse均方根误差,就是误差的平方和再开根号,意义上很好理解。不过有些情况用均方根误差就有些不合情理,比如有两种情况:
a,将价格为100万的房子价格预测为120万;
b,将价格为600万的房子价格预测为620万;
虽然a,b中价格的预测的差值都是20但是可以看出b明显要比a预测的要准一些的。为了改变这种情况就有了mape,公式如下:
M A P E = ∑ t = 1 n ∣ y t − p r e t y t ∣ ∗ 100 n MAPE=\sum_{t=1}^n|\frac{y_t-pre_t}{y_t}|*\frac{100}{n} MAPE=t=1nytytpretn100
求取每个样本的误差并除以该样本的真实值,最后除以样本总量做个归一。
以上面a,b为例计算其mape:
M a p e a = 0.2 Mape_a=0.2 Mapea=0.2
M a p e b = 0.034 Mape_b=0.034 Mapeb=0.034

4,例子:
现在有100个病人其中90个是阳性10个是阴性,现在有两个预测方案:
a,100个全部都是阳性;
b,90个阳性中有81个是阳性,剩余的全部为阴性。
分析:
真阳性:
T P R a = 90 / 90 = 1 TPR_a=90/90=1 TPRa=90/90=1
T P R b = 81 / 90 = 0.9 TPR_b=81/90=0.9 TPRb=81/90=0.9
假阳性:
F P R a = 10 / 10 = 1 FPR_a=10/10=1 FPRa=10/10=1
F P R b = 0 / 10 = 0 FPR_b=0/10=0 FPRb=0/10=0
精确度:
P R E a = 90 / 100 = 0.9 PRE_a=90/100=0.9 PREa=90/100=0.9
P R E b = 81 / 90 = 0.9 PRE_b=81/90=0.9 PREb=81/90=0.9
F1:
F 1 a = 2 ∗ T P R a ∗ P R E a / ( T P R a + P R E a ) = 0.947 F1_a=2*TPR_a*PRE_a/(TPR_a+PRE_a)=0.947 F1a=2TPRaPREa/(TPRa+PREa)=0.947
F 1 b = 2 ∗ T P R b ∗ P R E b / ( T P R b + P R E b ) = 0.9 F1_b=2*TPR_b*PRE_b/(TPR_b+PRE_b)=0.9 F1b=2TPRbPREb/(TPRb+PREb)=0.9


http://chatgpt.dhexx.cn/article/lNupIsKd.shtml

相关文章

【笔记】 Hard negative:区域建议框中得分较高的False Positive(假阳性)

eg1: 对于目标检测中我们会事先标记处ground truth&#xff0c;然后再算法中会生成一系列proposal&#xff0c;这些proposal有跟标记的ground truth重合的也有没重合的&#xff0c;那么重合度&#xff08;IOU&#xff09;超过一定阈值&#xff08;通常0.5&#xff09;的则认定为…

病毒组学数据分析 -03 DRAM-V 病毒序列识别(剔除假阳性)

DRAM&#xff08;Distilling and Refining Annotations of Metabolism&#xff0c;提取和精练代谢注释&#xff09;是一种用于注释宏基因组组装基因组和VirSorter确定的病毒重叠群的工具。DRAM 使用KEGG、UniRef90、PFAM、dbCAN、RefSeq 病毒、VOGDB和MEROPS注释 MAG&#xff0…

【概率论】理解贝叶斯(Bayes)公式:为什么疾病检测呈阳性,得这种病的概率却不高?

先说结论&#xff1a;因为假阳性的人数相比于真阳性太多了。 具体是怎么回事呢&#xff1f;咱们慢慢分析。 文章目录 一、贝叶斯公式二、典例分析三、贝叶斯公式的本质思考&#xff08;摘自教材&#xff09; 一、贝叶斯公式 定理1&#xff08;贝叶斯公式&#xff09; 设有事件…

全面梳理:准确率,精确率,召回率,查准率,查全率,假阳性,真阳性,PRC,ROC,AUC,F1

二分类问题的结果有四种&#xff1a; 逻辑在于&#xff0c;你的预测是positive-1和negative-0&#xff0c;true和false描述你本次预测的对错 true positive-TP&#xff1a;预测为1&#xff0c;预测正确即实际1 false positive-FP&#xff1a;预测为1&#xff0c;预测错误即实…

imputation-文献:False signals induced by single-cell imputation(scRNA-seq插补引入的假阳性问题)

文章题目 False signals induced by single-cell imputation 中文名&#xff1a; 单细胞插补引起的假信号 文章地址&#xff1a; https://f1000research.com/articles/7-1740/v2 评价插补方法&#xff1a; SAVER,DrImpute,scImpute,DCA,MAGIC,knn-smooth 上述方法基于原…

混淆矩阵、召回率、精确率、正确率、F1、真阳性率、假阳性率、ROC、AUC

C o n f u s i o n M a t r i x : Confusion Matrix: ConfusionMatrix: 真实 1 0 预测 1 TP(命中) FP(虚报) 0 FN(漏报) TN(正确拒绝) 召回率 R e c a l l T P T P F N Recall \dfrac{TP}{TP FN} RecallTPFNTP​&#xff0c;关注真实情况&#xff0c;关注positive。“好瓜被…

准确率,召回率,mAP,ROC,AUC,特异性,敏感性,假阴性,假阳性

P/R和ROC是两个不同的评价指标和计算方式&#xff0c;一般情况下&#xff0c;检索用准确率、召回率、F1、AP和mAP&#xff0c;分类、识别等用ROC和AUC&#xff08;特异性和敏感性是ROC当中的一个部分&#xff09;。 准确率、召回率、F1、AP和mAP这几个指标需要依次看&#xff0…

扩增子测序引入的假阳性稀有类群干扰对微生物群落多样性、构建机制及相互作用的研究...

# 01 2022年8月17日&#xff0c;青岛华大基因研究院、深圳华大生命科学研究院联合中国农业科学院北京畜牧兽医研究所、山东大学微生物技术国家重点实验室、丹麦哥本哈根大学等单位在 Environmental Microbiome (IF 6.36) 上发表了题为 “Sequencing introduced false positive …

敏感性、特异度、α、β、阳性预测值(PPV)、阴性预测值(NPV)等指标及置信区间计算(附R语言代码)

这个虽然简单但老是被绕进去,所以整理一下方便查阅。 首先画一个22的混淆矩阵confusion matrix: TP = True positive(真阳性) FP = False positive (假阳性) FN = False negative(假阴性) TN = True negative(真阴性) 敏感性(sensitivity)= 真阳性率 = 真阳/实…

真阳性假阳性假阴性分割可视化

1.分割掩码二值化 分割掩码转化为图像格式时会在分割边界处有很多灰度像素点&#xff0c;这将导致后续利用分割掩码和预测分割掩码进行处理时会在边界处出现很多噪声点&#xff0c;因此利用阈值将分割掩码转换为二值图&#xff0c;消除边界上的灰度像素点。 代码 import nump…

(精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标

1、概念 金标准&#xff08;标准集&#xff09; 预测算法&#xff08;预测集&#xff09; 验证存在&#xff08;T&#xff09; 验证不存在&#xff08;F&#xff09; 合计 预测存在&#xff08;P&#xff09; 预测为正&#xff0c;真实为正&#xff08;TP&#xff09; …

fNIRS中的假阳性和假阴性:问题、挑战和方法

导读 本文强调了在进行功能性近红外光谱(fNIRS)研究时需要考虑和解决的一个重要问题&#xff0c;即无意中测量非神经血管耦合引起的fNIRS血流动力学反应的可能性。这些可能被误解为大脑活动&#xff0c;即“假阳性”(由于错误地将检测到的血流动力学反应分配给功能性大脑活动而…

精确度、召回率、真阳性、假阳性

1) 精确度( precision )&#xff1a;TP / ( TPFP ) TP / P 2) 召回率&#xff08;recall&#xff09;&#xff1a;TP / (TP FN ) TP / T 3) 真阳性率&#xff08;True positive rate&#xff09;&#xff1a;TPR TP / ( TPFN ) TP / T &#xff08;敏感性 sensiti…

每天五分钟机器学习:如何计算模型的假阳性率和真阳性率?

本文重点 如上所示&#xff0c;我们学习了查准率和召回率&#xff0c;本文我们将学习真阳性率和假阳性率&#xff0c;学会这个对将来构建ROC曲线非常有帮助 真阳性率和假阳性率 假如使用测试集来评估一个分类模型&#xff08;二分问题&#xff09;&#xff1a;所以样本实际值…

统计学中的真阳性(TP),假阴性(FN),假阳性(FP),真阴性(TN)怎么理解?

举个例子,假如要在一个地区进行1000人的疾病检测,我们站在上帝视角,知道这1000人中,有10人是疾病感染者,占比1%。 但实际的检测结果可能存在误差,误差包括两种情况 疾病感染者,被错误诊断为健康身体健康,但却被错误诊断为感染者对应了两种情况 检测出来的是阴性,就一…

敏感性、特异性、假阳性、假阴性

敏感性、特异性、假阳性、假阴性是医学领域常用的评估指标。 敏感性&#xff1a;在金标准判断有病&#xff08;阳性&#xff09;的人群中&#xff0c;检测出阳性的几率。真阳性&#xff08;检测出确实有病的能力&#xff09; TPR TP / ( TPFN ) TP / T 特异性&#xff1a;在金…

ADODB简介

ADODB简介 ADODB 是 Active Data Objects Data Base 的简称&#xff0c;它是一种 PHP 存取数据库的函式组件。现在 SFS3 系统 (校园自由软件交流网学务系统) 计划的主持人陈莹光老师&#xff0c;决定采用此一组件&#xff0c;为了让更多有心参与该项目的伙伴们能够顺利加入发展…

Padavan固件添加adbyby去广告功能

2019独角兽企业重金招聘Python工程师标准>>> 在路由-》自定义脚本》wan上下行启动后执行&#xff0c;添加下面脚本 #!/bin/shsleep 30###Adbyby去广告脚本### Adbyby1 ### 0关闭&#xff1b;1启动 ########以下脚本请勿更改##### if [ "$Adbyby" "0…

newifi mini php,WBB - Newifi mini刷小米路由mini固件 + 屏蔽广告Adbyby插件小记

17号在京东下单Newifi mini&#xff0c;99块&#xff0c;当时还觉得很神奇&#xff0c;下午3点的单&#xff0c;居然晚上7点就到了。和同类产品小米路由mini的官网缺货以及130价格完全不是一回事&#xff0c;但据说他们的硬件却基本一致。 到手开箱使用&#xff0c;一看界面还不…

adb host 和 adbd

1、在HOST端&#xff0c;adb会fork出一个守护进程&#xff08;不是adbd&#xff09;&#xff0c;即server&#xff0c;而父进程继续处理client请求&#xff0c;所有的client通过TCP端口号5037进行与server通信&#xff0c;而server创建local socket与remote socket&#xff0c;…