ROC曲线与癌症分类

图片名称

ROC曲线在二分类问题中应用很广,最早可以追溯到二战中用雷达识别海鸥和敌机。
本文将阐述ROC曲线、confusion matrix,如何评价二分类问题,最后以癌症分类的例子,讲一讲有时候现实和常识可能不太一样的地方。

ROC曲线

ROC(receiver operating characteristic curve)曲线的对象是二分类问题,选择不同的阈值会有不同的分类结果。
ROC将不同阈值下的TP rateFP rate表示在一张图表上,便于直观地看到不同阈值的作用以及分类器本身的作用情况。

Confusion Matrix如下:

这里写图片描述

ROC curve如下,不同的阈值对应着图上不同的点:

这里写图片描述


其中,

$$\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简单阐述下:

  • 人群中患癌症的概率是$P(+)=0.01$,不患癌症的概率是$P(-)=0.99$
  • 患癌症的人被检测出来患癌症的概率是$\frac{P(P|+)}{P(+)}=95\%$。

那么,问题是如果有一个人被检测出来患癌症,那么他真的患癌症的概率是多少呢?

想一想,在心里面给一个答案^_^。

真实的答案是$4.6\%$。

$$P(P|+) = \frac{P(P+)}{P(P)}=\frac{0.0095}{0.2075}=4.6\%$$

有没有觉得跟自己想象的差别很大,$95\%$的TP rate虽然很高,但是也得关注下$20\%$的FP rate,并且人群中不患癌症的占了$99\%$。

或者换个角度,假如把所有病人都判定为患癌症,那么TP rate是1感觉还不错哦,但是这时候的FP rate是1,也就是把所有不患癌症的都判断患癌症,这不是很好啊。这个时候即使判断你为癌症那么可信度也不高。
$$P(P|+) = \frac{P(P+)}{P(P)}=1\%$$