ROC(receiver operating characteristic curve)曲线的对象是二分类问题,选择不同的阈值会有不同的分类结果。
ROC将不同阈值下的TP rate
和FP rate
表示在一张图表上,便于直观地看到不同阈值的作用以及分类器本身的作用情况。
Confusion Matrix
如下:
ROC curve
如下,不同的阈值对应着图上不同的点:
其中,
Sensitivity=TPrate=TPTP+FNSpecificity=FPrate=FPFP+TN
\begin{split} \mathrm{Sensitivity} = \mathrm{TPrate} = \frac{TP}{TP+FN} \\ \mathrm{Specificity} = \mathrm{FPrate} = \frac{FP}{FP+TN} \end{split} 一般认为越靠近左上角分类结果越好(TP rate高,FP rate低)。这表示对于Positive的样本有很大的概率识别出来(TP rate高),同时对Negative的样本有较小的误判几率(FP rate低)。
最典型的评价标准是AUC
,也就是ROC
曲线下的面积(baseline model的AUC是0.5
)。
同时,根据不同分类的严重性不同,也可以定义自己的cost function
。
下面举一个癌症分类的例子,你会发现有时候现实和常识往往不一样哦。
Tables | Positive | Negative | All Row |
---|---|---|---|
++ | 0.0095 | 0.0005 | 0.01 |
−- | 0.198 | 0.792 | 0.99 |
All Column | 0.2075 | 0.7925 | 1.00 |
对上面的confusion matrix
简单阐述下:
那么,问题是如果有一个人被检测出来患癌症,那么他真的患癌症的概率是多少呢?
想一想,在心里面给一个答案^_^。
真实的答案是4.6%4.6\%。
P(P|+)=P(P+)P(P)=0.00950.2075=4.6%
P(P|+) = \frac{P(P+)}{P(P)}=\frac{0.0095}{0.2075}=4.6\%
有没有觉得跟自己想象的差别很大,95%95\%的TP rate
虽然很高,但是也得关注下20%20\%的FP rate
,并且人群中不患癌症的占了99%99\%。
或者换个角度,假如把所有病人都判定为患癌症,那么TP rate
是1感觉还不错哦,但是这时候的FP rate
是1,也就是把所有不患癌症的都判断患癌症,这不是很好啊。这个时候即使判断你为癌症那么可信度也不高。
P(P|+)=P(P+)P(P)=1%
P(P|+) = \frac{P(P+)}{P(P)}=1\%