ROC,AUC,Precision,Recall,F1的介绍与计算
1. 基本概念
1.1 ROC与AUC
ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve),AUC(Area Under Curve)是ROC曲线下的面积。在计算ROC曲线之前,首先要了解一些基本概念。在二元分类模型的预测结果有四种,以判断人是否有病为例:
- 真阳性(TP):诊断为有,实际上也有病。
- 伪阳性(FP):诊断为有,实际却没有病。
- 真阴性(TN):诊断为没有,实际上也没有病。
- 伪阴性(FN):诊断为没有,实际却有病。

1.2 Precision、Recall与F1
对于二分类问题另一个常用的评价指标是精确率(precision)与召回率(recall)以及F1值。精确率表示在预测为阳性的样本中,真正有阳性的样本所占的比例。精确率的定义为P=\frac {TP} {TP+FP}。召回率表示所有真正呈阳性的样本中,预测为阳性所占的比例。召回率的定义为R=\frac {TP} {TP+FN},F1值是精确率和召回率的调和均值,公式为F1=\frac {2PR} {P+R}。精确率和召回率都高时,F1值也会高。通常情况下,Precision与Recall是相互矛盾的。
2. 曲线介绍
2.1 ROC曲线
ROC曲线坐标系如下图所示,虚线为随机猜测的概率,即猜对跟猜错的概率是一样的。理想情况下,我们是希望FPR为0,没有一个假阳性,TPR为1,即全为真阳性,此时所有样本都被正确分类,点位于左上角(0,1)位置处,没有一个分错的数据,这是最完美的情况,实际情况中基本不可能。如果点位于虚线下方,例如C点,说明分类错误的多,分类正确的少,此时不是我们想要的。如果点位于虚线上方,例如C \prime点,说明分类错误的少,分类正确的多,此时是我们想要的,因此我们希望ROC曲线尽可能的靠近左上角。对于一个特定的分类器和测试数据集,只能得到一个分类结果,即ROC曲线坐标系中的一点,那么如何得到一条ROC曲线呢?分类问题中我们经常会得到某个样本是正样本的概率,根据概率值与阈值的比较来判断某个样本是否是正样本。在不同的阈值下可以得到不同的TPR和FPR值,即可以得到一系列的点,将它们在图中绘制出来,并依次连接起来就得到了ROC曲线,阈值取值越多,ROC曲线越平滑。
AUC为ROC曲线下的面积,它的面积不会大于1,由于ROC曲线一般都处于直线y=x的上方,因此AUC的取值范围通常在(0.5,1)之间。由于ROC曲线不能很好的看出分类器模型的好坏,因此采用AUC值来进行分类器模型的评估与比较。通常AUC值越大,分类器性能越好。


2.2 P-R曲线
在P-R曲线中,Recall为横坐标,Precision为纵坐标。在ROC曲线中曲线越凸向左上角约好,在P-R曲线中,曲线越凸向右上角越好。P-R曲线判断模型的好坏要根据具体情况具体分析,有的项目要求召回率较高、有的项目要求精确率较高。P-R曲线的绘制跟ROC曲线的绘制是一样的,在不同的阈值下得到不同的Precision、Recall,得到一系列的点,将它们在P-R图中绘制出来,并依次连接起来就得到了P-R图。两个分类器模型(算法)P-R曲线比较的一个例子如下图所示:

2.3 ROC与P-R对比
从公式计算中可以看出,ROC曲线中真阳性率TPR的计算公式与P-R曲线中的召回率Recall计算公式是一样的,即二者是同一个东西在不同环境下的不同叫法。当正负样本差距不大的情况下,ROC曲线和P-R的趋势是差不多的,但是当负样本很多的时候,ROC曲线效果依然较好,但是P-R曲线效果一般。
ROC,AUC,Precision,Recall,F1的介绍与计算的更多相关文章
- Precision,Recall,F1的计算
Precision又叫查准率,Recall又叫查全率.这两个指标共同衡量才能评价模型输出结果. TP: 预测为1(Positive),实际也为1(Truth-预测对了) TN: 预测为0(Negati ...
- 机器学习--如何理解Accuracy, Precision, Recall, F1 score
当我们在谈论一个模型好坏的时候,我们常常会听到准确率(Accuracy)这个词,我们也会听到"如何才能使模型的Accurcy更高".那么是不是准确率最高的模型就一定是最好的模型? 这篇博文会向大家解释 ...
- ROC,AUC,Precision,Recall,F1的介绍与计算(转)
1. 基本概念 1.1 ROC与AUC ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operatin ...
- BERT模型在多类别文本分类时的precision, recall, f1值的计算
BERT预训练模型在诸多NLP任务中都取得最优的结果.在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为word embedding导入到我们 ...
- ROC,AUC,PR,AP介绍及python绘制
这里介绍一下如题所述的四个概念以及相应的使用python绘制曲线: 参考博客:http://kubicode.me/2016/09/19/Machine%20Learning/AUC-Calculat ...
- 评价指标整理:Precision, Recall, F-score, TPR, FPR, TNR, FNR, AUC, Accuracy
针对二分类的结果,对模型进行评估,通常有以下几种方法: Precision.Recall.F-score(F1-measure)TPR.FPR.TNR.FNR.AUCAccuracy 真实结果 1 ...
- TP Rate ,FP Rate, Precision, Recall, F-Measure, ROC Area,
TP Rate ,FP Rate, Precision, Recall, F-Measure, ROC Area, https://www.zhihu.com/question/30643044 T/ ...
- ROC AUC
1.什么是性能度量? 我们都知道机器学习要建模,但是对于模型性能的好坏(即模型的泛化能力),我们并不知道是怎样的,很可能这个模型就是一个差的模型,泛化能力弱,对测试集不能很好的预测或分类.那么如何知道 ...
- 一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC
参考资料:https://zhuanlan.zhihu.com/p/46714763 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到).其实,理解它并不是非常难 ...
随机推荐
- CRC标准以及简记式
一.CRC标准 下表中列出了一些见于标准的CRC资料: 名称 生成多项式 简记式* 应用举例 CRC-4 x4+x+1 3 ITU G.704 CRC-8 x8+x5+x4+1 31 DS18B20 ...
- java14
1.方法:定义一个小功能,储存某段代码,方便在需要时调出来反复使用 !!!!重复使用 格式: static void 名称(){ } 注意点: ①在static main方法中要调用其他方法,调用的其 ...
- 透过摩拜和ofo,看产品从0到1时如何取舍需求(转)
大纲 背景介绍 从0至1,我们成功的关键是什么? 从0到1,我们为什么选择做?又为什么选择不做? 从0到1,我们面临什么选择?我们作出了什么选择? 从0到1,我们为什么作出了这种选择? 背景 在资本注 ...
- vue的computed属性
vue的computed属性要注意的两个地方,1,必须有return,2,使用属性不用括号 <div> <input type="text" v-model=&q ...
- Win7 VS2013环境使用cuda_7.5.18
首先得吐槽下VS2015出来快一年了CUDA居然还不支持,没办法重装系统刚从2013升到2015,还得再装回一个2013用,只为学习CUDA... 然后安装的时候,如果你选择自定义组件安装,注意不要改 ...
- AngularJS封装UEditor
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- Spring通过注解配置Bean
@Component: 基本注解, 标识了一个受 Spring 管理的组件@Repository: 标识持久层组件@Service: 标识服务层(业务层)组件@Controller: 标识表现层组件 ...
- js基础学习笔记(零七)
indexOf() 方法 返回某个指定的字符串值在字符串中首次出现的位置. 语法: stringObject.indexOf(substring, startpos) 参数说明: 注意:如果要检索的字 ...
- Ng第四课:多变量线性回归(Linear Regression with Multiple Variables)
4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践 1-特征缩放 4.4 梯度下降法实践 2-学习率 4.5 特征和多项式回归 4.6 正规方程 4.7 正规方程及不可逆性 ...
- 最顶尖的12个IT技能
这差不多是十年前得了,看看今天这些东西哪些死掉了,哪些成长茁壮了,又能有哪些启示. KevinScott是谷歌公司的高级技术经理,也是美国计算机协会专业与教育委 员会的创始成员,他说:“我在硅谷看到的 ...