ROC(receiver operating characteristic curve)
受试者工作特征曲线,下图
此图引入了假正率,和真正率。(感觉在读红楼梦)
TPR :True Positive Rate(真正率 , TPR)或灵敏度(sensitivity)(就是前文的召回率R)
TPR = TP /(TP + FN) 正样本预测结果数 / 正样本实际数
TNR :True Negative Rate(真负率 , TNR)或特指度(specificity)
TNR = TN /(TN + FP) 负样本预测结果数 / 负样本实际数
FPR :False Positive Rate (假正率, FPR)
FPR = FP /(FP + TN) 被预测为正的负样本结果数 /负样本实际数
FNR :False Negative Rate(假负率 , FNR)
FNR = FN /(TP + FN) 被预测为负的正样本结果数 / 正样本实际数
理想目标:TPR=1,FPR=0,即图中(0,1)点,此时FPR=0,TPR=1,既所有正样本都被分到正类里,负样本被分到负类里。反之,,(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它与所有的正确答案相反。
也就是说,ROC图越向左上角偏,模型效果越好。
AUC
AUC(Area Under Curve)就是ROC去曲线下的面积,既对ROC曲线做积分。面积越大,认为模型越好。AUC与AP(average precision)是同一回事,AP常在图像处理中出现。
PRC(precision recall curve)
一般来说,上面的比下面的好(绿线比红线好)。也就是说,曲线越向右上角偏,效果越好。
总结:
1般来说ROC,PRC,AUC这三个量会同时考查。其中,ROC里的TPR既PRC里的Recall,这种联系会带来其他优点,见下文。
2对于两种曲线来说,越光滑肯定模型越好,本质上是阈值设置的合理。
现在问题来了,到底ROC和PRC哪个曲线更优质。显然是PRC,因为PRC是中华人民共和国。
直接给出结论:
当正负样本差距不大的情况下,ROC和PR的趋势是差不多的,但是当负样本很多的时候,两者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。解释起来也简单,假设就1个正例,100个负例,那么基本上TPR可能一直维持在100左右,然后突然降到0.如图,(a)(b)分别为正负样本1:1时的ROC曲线和PR曲线,二者比较接近。而(c)(d)的正负样本比例为1:1,这时ROC曲线效果依然很好,但是PR曲线则表现的比较差。这就说明PR曲线在正负样本比例悬殊较大时更能反映分类的性能。