ROC曲线和AUC

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010916338/article/details/84987842

本博文所有理论都是基于二分类,多分类问题其实与二分类问题想通。

  • 1,首先区分什么是正类什么是负类。

考虑一个二分问题,如果一类定为正类(positive),那么另一类就是负类(negative)。
注意和正样本和负样本概念不同,参考博文:https://blog.csdn.net/u010916338/article/details/84974188

  • 2,对一个二分问题来说,会出现四种情况:真正类,假正类,真负类,假负类。

真正类(True positive):实例是正类并且也被 预测成正类;
假正类(False positive):实例是负类被预测成正类;
真负类(True negative):实例是负类被预测成负类;
假负类(false negative):实例是正类被预测成负类。
在这里插入图片描述
在这里插入图片描述

  • 3,TPR和FPR

真正类率(true positive rate ,TPR), 计算公式为TPR=TP/ (TP+ FN),刻画的是分类器所识别出的正实例占所有正实例的比例。
假正类率(false positive rate, FPR),计算公式为FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例。1-specificity=FPR。
注意:两者的分母不同。

  • 4,ROC的引入

在一个二分类模型中,对于所得到的连续结果,假设已确定一个阈值,比如说 0.6,大于这个值的实例划归为正类,小于这个值则划到负类中。如果减小阈值,减到0.5,固然能识别出更多的正类,也就是提高了识别出的正例占所有正例的比例,即TPR,但同时也将更多的负实例当作了正实例,即提高了FPR。为了形象化这一变化,在此引入ROC。
Receiver Operating Characteristic,翻译为"接受者操作特性曲线",够拗口的。曲线由两个变量1-specificity 和 Sensitivity绘制. 1-specificity=FPR横轴表示,Sensitivity=TPR纵轴表示。这个组合以1-specificity对sensitivity,即是以代价(costs)对收益(benefits)。

  • 5,举例

现有两种水果,橘子和橙子,共61800个。已知橙子有14084个设为正类,已知橘子有47716个设为负类。假设分类器为BP神经网络,且输出层只有一个神经元,且神经元的输出值为0~1之间的小数值。现设定阈值,比如0.6,但凡输出层神经元的输出值大于等于0.6都认为是橙子,小于0.6都认为是橘子。
现将所有输出结果从大到小排序,每6180条数据做一次截取,并做一次TPR和FPR统计。
解析:因为已经排了序,每移动6180个数据(即移动10%),其实就相当于移动了阈值。例如大于0.91的有10%,大于0.83的有20%。
统计结果如下表。实例数指每一组的数据总数,包含正类也包含负类。正例数指真正类数,注意表中的正例数是每一段6180数据中的真正类数,具体计算还需加上前面的统计数据。
在这里插入图片描述
如下图,可以换个思路去理解,即损失率对应收益率。比如从下往上第一个点,损失0%那么就收益0%;第二个点损失2.73%那么就会收益34.64%。
在这里插入图片描述

  • 6,AUC

最好的状态是,无论损失率为多少,收益率都最高,那么该模型就是最好的。从上图中反应出来就是横轴无论取值为多少,纵轴都取值为100%。如下图率线所示:
在这里插入图片描述
进一步发现,此时绿色曲线与横轴坐标围成的面积最大,那么就可以转换成用ROC曲线与横轴坐标围成的面积来表示模型的准确率,于是诞生了AUC。
在这里插入图片描述

但是AUC也有缺陷
参考论文:The Relationship Between Precision-Recall and ROC Curves

猜你喜欢

转载自blog.csdn.net/u010916338/article/details/84987842