打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
机器学习:借助实例透彻理解ROC曲线及AUC算法模型评估指标

F1 精确率—召回率权衡

在某些情况中,我们也许需要以牺牲另一个指标为代价来最大化精确率或者召回率。例如,医院在对人们进行随访检查的初步疾病筛查中,我们可能希望得到接近于100%的召回率,我们想找到所有患病的患者。如果随访检查的代价不是很高,我们可以接受较低的精确率。然而,如果我们想要找到精确率和召回率的最佳组合,我们可以使用 F1 score 来对两者进行结合,F1 score 是对精度和召回率的调和平均:

我们使用调和平均而不是简单的算术平均的原因是:调和平均可以惩罚极端情况。一个具有 100%的精确率,而召回率为 0 的算法模型,这两个指标的算术平均是 0.5,但是 F1 score 会是 0。F1 score 给了精确率和召回率相同的权重,它是通用 Fβ指标的一个特殊情况,在 Fβ中,β 可以用来给召回率和精度更多或者更少的权重。(还有其他方式可以结合精度和召回率,例如二者的几何平均,但是 F1 score 是最常用的) 如果我们想创建一个具有最佳的精确度—召回率平衡的模型,那么就要尝试将 F1 score 最大化。


ROC(Receiver Operating Characteristic)曲线

F1分数同时兼顾了分类模型的精确率和召回率,可以看作是模型精确率和召回率的一种加权平均,但如果两个算法模型,一个Precision特别高,Recall特别低,另一个Recall特别高,Precision特别低的时候,F1-score可能是差不多的,因此也不能仅基于F1作出选择。

接下来,我们介绍另一种评估标准——ROC。


ROC曲线定义

ROC(Receiver Operating Characteristic)曲线总结了使用不同阈值下预测模型的召回率和虚警率之间的权衡,反映了分类器对正例的覆盖能力和对负例的覆盖能力之间的权衡。

横轴:假正类率(False Postive Rate, FPR) 虚警率,划分实例中所有负例占所有负例的比例;(1 - Specificity)

纵轴:真正类率(True Postive Rate, TPR) 召回率,也称灵敏度(Sensitivity),代表分类器预测的正类中实际正实例占所有正实例的比例。

ROC曲线,是以FPR为横轴、TPR为纵轴,衡量二分类算法模型性能的曲线。

那么ROC曲线上的点是如何得到的呢?分类器对分类的置信度一般设为50%(阈值),即置信度超过50%认为是正例,低于50%认为是反例。当然不是所有的分类器都能得到分类的置信度,因此不是所有的分类器都能得到ROC曲线。

依次改变这个置信度为[0.1 , 1.0],会得到一组不同的混淆矩阵,取其中的FPR和TPR值组成坐标,连接这些值,就得到ROC曲线。ROC曲线与X轴围成的图形面积可以作为一个综合衡量指标,即AUC(Area Under Curve,曲线下面积),AUC越大,曲线就越凸,分类器的效果也就越好。

如下面这幅图,图中实线为ROC曲线,线上每个点对应一个阈值。

结合上图,关于ROC曲线的一些特性说明:

  • 理想情况下,TPR(Recall)应该接近1,FPR应该接近0。ROC曲线上的每一个点对应于一个阈值,对于一个分类算法模型,每个阈值对应一组TPR、FPR。比如阈值最大时,TP=FP=0,对应于原点;阈值最小时,TN=FN=0,对应于右上角的点(1,1)。
  • 随着阈值增加,TP和FP都减小,TPR和FPR也减小,ROC点向左下移动。

如何绘制ROC曲线

假设已经得出一系列样本被划分为正类的概率,然后按照大小排序,下图是一个示例,图中共有20个测试样本,“gt_lable”一栏表示每个测试样本真正的标签(1表示正样本,0表示负样本),“Score”表示每个测试样本属于正样本的概率。

接下来,我们从高到低,依次将“Score”值作为阈值,当测试样本属于正样本的概率大于或等于这个阈值时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第5个样本,其“Score”值为0.78,那么样本1,2,3,4,5都被认为是正样本,因为它们的“Score”值都大于等于0.78,而其他样本则都认为是负样本。每次选取一个不同的阈值,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。

我们通过不同调整阈值,得到如上20组FPR和TPR(Recall)数据。这样一来,我们可以绘制出ROC曲线,如下图。

AUC(Area under Curve)即ROC曲线下的面积,介于0.1和1之间。有时不同分类算法的ROC曲线存在交叉,因此很多时候用AUC值作为算法好坏的评判标准,面积越大,表示分类性能越好。另外AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类,表示分类性能越好。


为什么使用ROC和AUC评价分类器

既然已经这么多标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例存在一定差距,而且测试数据中的正负样本也可能随着时间而变化。

通过ROC曲线在召回率和虚警率之间的权衡,选择出最好的阈值范围。在比较两种模型的时候,如果一个被另一个完全包住,那么大的那个好。如果两个有交叉,一般而言,面积大的那个好。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[Algorithm] 机器学习算法常用指标总结
ML基础-理解ROC和AUC
机器学习-混淆矩阵-ROC-AUC
机器学习性能度量评价指标(MSE/R2/Acc/查准率/查全率/P-R/F1/ROC/AUC/KS)...
机器学习之分类器性能指标之ROC曲线、AUC值
ROC曲线学习总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服