ROC曲线,AUC

来源:互联网 发布:周思成网络课程百度云 编辑:程序博客网 时间:2024/05/17 19:18

@ds17

ROC概念

Reciever operating characteristic curve

  • True positive:一个实例是正类并且也被 预测成正类,即为真正类,TP
  • False positive:如果实例是负类被预测成正类,称之为假正类,FP
  • True negative,TN
  • Fasle negative,FN

TPR, True positive rate, sensitivity
真正类率,命中率

TPR=TPTP+FN

FPR, False positive rate
假正类率,假警报率
FPR=FPFP+TN

TNR, True Negative Rate,specificity
真负类率
TNR=TNFP+TN=1FPR=Specifity

ACC,Accuracy
准确率
ACC=(TP+TN)P+N

对于一个Binary Logistic Regression Classifier,计算结果为一个概率。设置不同的Threshold,可以得到不同的分类结果,进而算出不同的TPR/FPR。遍历“所有的Threshold”以TFR为横轴,TPR为纵轴,绘出ROC曲线。
ROC曲线
Threshold=0,对应点(1,1);
Threshold=1,对应点(0,0);
理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。

ROC意义

当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。
在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。
下图是ROC曲线和Presision-Recall曲线的对比:

(a)和(c)为Roc曲线,(b)和(d)为Precision-Recall曲线。
(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。
可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线变化较大。

AUC

AUC不大于1;
一般ROC曲线都处于y=x上方,所以1>AUC>0.5
AUC越大,当前分类器越有可能将正样本排在负样本前面,分类效果更好。

Reference

  1. python sklearn画ROC曲线
  2. ROC和AUC介绍以及如何计算AUC