概述
AUC(Area Under roc Curve)是一种用来度量分类模型好坏的一个标准,对于现实中常见的样本类别分布不平衡的问题,相较Accuracy更能反应分类器性能。
二分类问题在机器学习中是一个很常见的问题,经常会用到。ROC (Receiver Operating Characteristic) 曲线和 AUC (Area Under the Curve) 值常被用来评价一个二值分类器 (binary classifier) 的优劣。
ROC曲线
ROC全名接收者操作特征(Receiver Operating Characteristic),表示为一个画在二维平面上的曲线,曲线上每个点反应这对统一信号刺激的感受性。对特定的分类器,可以根据其在测试样本上的表现得到一个TPR和FPR点对,分类器就可以映射成ROC平面上的一个点。调整这个分类器分类时候使用的阈值,得到一个经过(0, 0)
,(1, 1)
的曲线,即该分类器的ROC曲线。一般情况下,这个曲线都应该处于(0, 0)
和(1, 1)
连线的上方。因为(0, 0)
和(1, 1)
连线形成的ROC曲线实际上代表的是一个随机分类器。
对于二分类问题, 实例分成正类(postive)或者负类(negative)。实际中分类时,会出现四种情况:
- 真正类(True Postive, TP),实例为正类,预测为正类
- 假负类(False Negative FN),实例为正类,预测为负类
- 假正类(False Postive FP),实例为负类,预测为正类
- 真负类(True Negative TN),实例为负类,预测为负类
其中正类、负类、真、假的含义如下:
- 预测类别为1的为
正类
,预测类别为0的为负类
- 预测正确为
真
,预测错误为假
将上述概念组合,产生如下混淆矩阵:
由上表可得出横,纵轴的计算公式:
- 精确率(Precision):
TP/(TP+FP)
,分类器预测的正类中实际正实例的占比。 - 真正类率(True Postive Rate,TPR):
TP/(TP+FN)
,分类器预测的正类中实际正实例占所有正实例的比例。也称为Sensitivity或Recall - 假正类率(False Postive Rate,FPR):
FP/(FP+TN)
,分类器预测的正类中实际负实例占所有负实例的比例。也表示为1-Specificity - 真负类率(True Negative Rate,TNR):
TN/(FP+TN)
,且TNR=1-FPR
,分类器预测的负类中实际负实例占所有负实例的比例。也称为Specificity
[图片上传中...(image.png-eb6e2a-1615974401817-0)]
横轴:FPR, 所有真实类别为1的样本中,预测类别为1的比例。
纵轴:TPR,所有真实类别为0的样本中,预测类别为1的比例。
二者相等时,即y=x:
含义:不论真实类别是1还是0的样本,分类器预测为1的概率是相等的,分类器对于正例和负例毫无区分能力,和抛硬币没什么区别。
我们期望分类器:
TPR尽可能大,真正类实例相对实际类别为1的实例的比例尽量高
FPR尽可能小,假正类实例相对实际类别为0的实例的比例尽量低
举个栗子,对于硬分类器(例如SVM,NB),预测类别为离散标签,对于8个样本的预测情况如下:
得到混淆矩阵:
算得TPRate=3/4,FPRate=2/4,得到ROC曲线:
AUC值
定义
AUC (Area Under Curve) 为ROC曲线下的面积,显然该面积数值小于等于1。又由于ROC曲线一般都处于y=x
这条直线的上方,所以AUC的取值范围一般为[0.5, 1]
。AUC值相较ROC曲线更能清晰的显示分类器的优劣,AUC值越大分类器效果越好。
值的含义
AUC = 1:完美分类器,采用这个预测模型时,不管设定什么阈值都能得出正确结果。绝大多数预测的场合,不存在完美分类器。
0.5 < AUC < 1:优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
AUC = 0.5:跟随机猜测一样(例:丢铜板),模型没有预测价值。
AUC < 0.5:比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
Reference
ROC曲线与AUC值
机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
机器学习之分类器性能指标之ROC曲线、AUC值
如何理解机器学习和统计中的AUC?