概
AUC常常在文章中作为评价一个分类器优劣的指标, 却总是忘记其原由, 索性记上一笔.
TPR, FPR
首先理解TP, FP, FN, TN的概念, 下面是其对应的类型. 这里, P表示正样本, 而N表示负样本, 下表中的行为真实的标签, 列为预测的标签.
预测真实 | P | N |
---|---|---|
P | TP(True Positive) | FP(False Negative) |
N | FN(False Negative) | TN(True Positive) |
则
[mathrm{TPR} := frac{mathrm{TP}}{mathrm{TP}+mathrm{FN}}, mathrm{FPR}:= frac{mathrm{FP}}{mathrm{FP}+mathrm{TN}},
]
即TPR表示正样本分类正确的概率, FPR表示负样本判断错误(即取伪)的概率.
问题是如何通过这俩个指标反映一个二分类器的优劣, 首先假设二分类器由下列方式定义:
[f:mathbb{R}^d
ightarrow mathbb{R}, quad c(x;T) = I(f(x)>T),
]
其中(T)便是阈值, 即超过一定的阈值判断其为正样本.
注: 其实此说法有瑕疵, 因为完全有可能选择超过一定的阈值判断其为负样本时分类器效果"更好", 但是这种争论没有多大意义, 逼近只需取(f'(x)=-f(x))即可.
显示强调(T)的存在, 有(mathrm{TPR}(T))和(mathrm{FPR}(T)), 另外, 此时(f)可以看成一个随机变量, 不妨令(Y_+)表示(f)的输入(X)为正样本时的随机变量, (Y_-)表示(f)的输入(X)为负样本时的随机变量, 则
[mathrm{TPR}(T)=P(Y_+>T) = int_{T}^{infty} p(y|+) mathrm{d}y, \
mathrm{FPR}(T)=P(Y_->T) = int_{T}^{infty} p(y|-) mathrm{d}y.
]
ROC and AUC
ROC曲线就是以(y=mathrm{TPR}(T)), (x=mathrm{FPR}(T))的曲线, (T)在这里充当一个中间变量.
AUC就是ROC曲线下的面积, 其意义是概率(P(Y_+>Y_-)):
[egin{array}{ll}
mathrm{AUC}
&= int_0^1 y(x) mathrm{d}x = int_0^1 mathrm{TPR}(mathrm{FPR}^{-1}(x)) mathrm{d}x \
&= int_{+infty}^{-infty} mathrm{TPR}(T) mathrm{FPR}'(T) mathrm{d}T \
&= int_{+infty}^{-infty} int_{T}^{infty} p(y|+) cdot(-p(y|-)) mathrm{d}y mathrm{d}T \
&= int_{-infty}^{+infty} int_{T}^{infty} p(y|+)p(y|-) mathrm{d}y mathrm{d}T \
&= int_{-infty}^{+infty} int_{-infty}^{infty} I(y>T)p(y|+)p(y|-) mathrm{d}y mathrm{d}T \
&= P(Y_+ > Y_-).
end{array}
]
当然很自然的评价指标是, AUC距离0.5越远越好(这么说是因为AUC=0, 实际上只需(f'(x)=-f(x))).