ROC曲线和AUC

  • ROC曲线是指受试者工作特征曲线/接收器操作特性曲线(receiver operating characteristic curve),是反应敏感性和特异性连续变量的综合指标,利用构图法揭示敏感性和 特异性的相互关系,它通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性,再以敏感性为纵坐标,特异性为横坐标绘制成曲线,曲线下的面积(AUC)越大,诊断准确性越高最靠近坐标图左上方的点为敏感性和特异性均较高的临界值

ROC曲线的例子


考虑一个二分问题,即将实例分成正类(Positive)或是负类(Negative)。对于一个二分问题来说,会出现以下四种情况。

预测

1

0

合计

实际

1

True Positive(TP)

False Negative(FN)

Actual Positive(TP+FN)

0

False Positive(FP)

True Negative(TN)

Actual Negative(FP+TN)

合计

Predicted Positive(TP+FP)

Predicted Negative(FN+TN)

TP+FP+FN+TN

真正类率(true positive rate ,TPR) = TPR=TP/ (TP+ FN),描述分类器识别出的正实例所有正实例的比例。

假正类率(false positive rate, FPR)= FP / (FP + TN),描述分类器错认为正类的负实例所有负实例的比例。

真负类率(True Negative Rate,TNR)= N/ (FP+ TN) = 1-FPR。

relu6 曲线 λ—re曲线_评估

  • 其中两列True matches和True non-match分别代表应该匹配上的和不应该匹配上的
  • 两行Pred matches和Pre non-match分别代表预测匹配上的预测匹配不上的
  • FPR = FP/(FP + TN) 负样本中的错判率(假警报率)
  • TPR = TP/(TP + FN) 判对样本中的正样本率(命中率)
  • ACC = (TP + TN) / (P+N) 判对准确率

在这个二分类模型中,对于所得到的连续结果,假设已经确定了一个阈值,如0.6,大于这个值的实例将被分为正类,否则为负类。如果减小这个阈值到0.5,虽然可以识别出更多的正类,提高真正类率(TPR,识别出的正实例占所有正实例的比例),但同时更多的负实例被识别为正实例,假正类率(FPR,错认为正类的负实例占所有负实例的比例)上升。

为了形象化上述变化,引入ROC,ROC可以用于评价一个分类器。

relu6 曲线 λ—re曲线_临界值_02


ROC曲线和它相关的比率

  • 理想情况下,TPR应该接近于1而FPR应该接近于0.
  • ROC曲线上每一个点对应于一个threshold,队医一个分类器,每一个threshold下会有一个TPR和FPR
  • 随着阈值的增加,TP和FP都减小,TPR和FPR也减小,ROC点向左下角移动

ROC(Receiver Operating Characteristic)曲线由两个变量(1-specificity 和 Sensitivity)即假正类率FPR和真正类率TPR绘制,反应了正类覆盖程度。这个组合以1-specificity 对 Sensitivity,即是以代价(costs)对收益(benefits)

此外,ROC曲线还可以用来计算“均值平均精度”(mean average precision),这是当你通过改变阈值来选择最好的结果时得到的平均精度

下表是一个Logistic回归得到的结果。将得到的数值按从大到小划分成10个个数相同的部分。

Percentile

实例数

正例数

1-特异度(FPR)%

敏感度%

10

6180

4879

2.73

34.64

20

6180

2804

9.80

54.55

30

6180

2165

18.22

69.92

40

6180

1506

28.01

80.62

50

6180

987

38.90

87.62

60

6180

529

50.74

91.38

70

6180

365

62.93

93.97

80

6180

294

75.26

96.06

90

6180

297

87.59

98.17

100

6177

258

100.00

100.00

合计

14084

其正实例数为这个部分中实际的正类数。也就是说,将逻辑回归得到的结果按从大到小排列,倘若以前10%的数值作为阈值,即将前10%的实例都划归为正类,6180个,其中正确的个数为4879个,占所有正类的4879/14084 *100%=34.64%,即敏感度;另外有6180-4879=1301个负实例被错分类为正类,占所有负类的1301/47713 *100% = 2.73% ,即1-特异度。以这两组值分别作为x值和y值,绘制在坐标图中即为ROC曲线。


AUC(Area Under Curve)、Gini系数和KS(Kolmogorov-Smirnov)值


relu6 曲线 λ—re曲线_relu6 曲线_03


AUC被定义为ROC曲线下与坐标轴围成的面积。由于ROC曲线的定义,AUC的值不会大于1。同时,ROC曲线一般在y=x曲线上方,所以AUC的取值范围一般在(0.5~1)。

Gini系数ROC曲线与y=x(红线)围成的面积和中线之上的面积的(0.5)比例。AUC和Gini的换算关系为:

Gini = 2*AUC -1

KS(Kolmogorov-Smirnov)值定义为TPR与FPR的差的最大值。反应模型的最优分类效果,此时所取的阈值一般作为最优阈值。

KS=max(TPR−FPR)