T P R = T P P = T P T P + F N TPR = \frac{TP}{P} = \frac{TP}{TP + FN} TPR=PTP=TP+FNTP
F P R = F P N = F P F P + T N FPR = \frac{FP}{N} = \frac{FP}{FP + TN} FPR=NFP=FP+TNFP
ROC曲线的纵坐标为TPR,真正率,其实也是召回率。分母为所有实际正样本。
ROC曲线的纵坐标为FPR,假正率,是预测错误的负样本(实际为负样本,预测成正样本,所以分子是FP)在所有实际负样本中的占比。
ROC曲线作为常见的效果评估曲线,优点主要有:
1.TPR关注所有正样本,FPR关注所有负样本,所以比较适合评估分类器的整体性能。
2.TPR与FPR都不依赖于类别的具体分布,不会随类别分布的改变发生变化。
缺点也比较明显:
1.因为ROC曲线不依赖类别的具体分布,所以有时候反倒会成为缺点。假设负样本N增加了很多,但是曲线却没发生变化,相当于系统内产生了大片的FP样本。在一些最关心正样本预测准确性的场景,这样就会有问题。
2.如果有类别不平衡的情况,负例的数目众多致使FPR的增长不明显,导致ROC曲线呈现一个过分乐观的效果估计。例如在实际的广告这种场景中,N样本远远大于P样本,FP即使增加很多,因为TN的数量太大,FPR的值改变也很小。结果是虽然大量负样本被错判成正样本,在ROC曲线上却无法直观体现出来。(当然在做CTR预估的时候,我们会用降采样等手段降低负样本的数量)
PR曲线中的P,指的是precision,一般称为精准率,或者查准率。TPR与FPR,分母针对的都是实际正样本,实际负样本。而precision的计算方法为:
p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP + FP} precision=TP+FPTP
可以看出,precision的分母是所有预测的正样本。
PR曲线的纵坐标,就是Precision,横坐标是Recall,或者说是TPR。
由此可见,PR曲线的两个轴关注的都是正样本。如果是类别不平衡问题,我们关注的又都是正样本,这种情况下,PR曲线要比ROC曲线更好一些。
AUC的含义为:分类器将正样本判断为正例比将负样本判断为正例的概率大的可能性。
所以我们常见的计算AUC的方法为:
1.几何方法。比如在ROC曲线中,ROC曲线下面的面积就是AUC值。
2.假设样本集中,总共有(m+n)个样本,其中正样本m个,负样本n个,则样本对为mn个。正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为1,累加计数,然后除以(mn)就是AUC的值。
计算公式为:
F 1 = 2 p r e c i s i o n p r e c i s i o n + r e c a l l = 2 T P 2 T P + F N + F P F1 = \frac{2 precision}{ precision + recall} = \frac{2TP}{2TP + FN + FP} F1=precision+recall2precision=2TP+FN+FP2TP
F1值平衡了召回率与查准率,是一个比较平衡的指标。