准确率的缺陷
某些情况下,准确率并不能很好得反应模型的性能。例如:若100个样本中,90个正样本,10个负样本。模型A将它们全都预测为正样本,则准确率为 90%,若模型B将90个正样本中的80个预测为正样本,且将10个负样本中的9个预测为负样本,则其准确率为 89%。单从准确率来说,模型A要优于模型B的,但从实际结果来看,模型B的性能要更优于A的。
所以就需要一些新的模型评判标准
ROC曲线
Receiver Operating Characteristic curve
二分类器通常输出一个样本为正的概率,例如模型对某张图片预测为猫的概率为0.7。单就这个概率来讲,你不能说模型是否任务图片是不是猫,你还需要一个阈值。例如,若阈值为0.5,则认为该图片是猫,若阈值为0.8则不是。
在指定某阈值的情况下,使用二分类器对样本进行预测可得以下四个数值,例如:TP 表示正样本中预测也为正的样本总数

由此可计算出:
1. 所有正样本中,预测为正的概率(或:所有正样本中,预测正确的概率。亦或:预测为正的样本中,预测正确的样本在所有真正为正样本中的占比)。其本质是预测正确的概率,应该越大越好。(也就是下文中的recall召回率)
\[ TPR = \frac{TP}{TP + FN} \]
2. 所有负样本中,预测为正的概率(或:所有负样本中,预测出错的概率。亦或:预测为正的样本中,预测错误的样本在所有真正为负样本中的占比)。其本质是预测出错的概率,应该越小越好
\[ FPR = \frac{FP}{FP + TN} \]
在最开始100个样本的例子中,模型A的 TPR=90/90=1,FPR=10/10=1。模型B的 TPR=80/90=0.89,FPR=1/10=0.1。虽然模型A的TPR很高,但是其FPR也高。模型B则TPR远高于FPR,由此可知模型B要更好一点
同一个模型,分类阈值设定不同,其 TPR 和 FPR 也会不同。例如:若将阈值设定很小,则 TP 和 FP 就会增大,使得 TPR 和 FPR 都增大(最大都为1)。反之,两者都会趋近于0
由此,设定不同的阈值,每个阈值下都能得到一个坐标对 (TPR, FPR),若将该坐标画在平面坐标系上可得:

(截图来自:https://blog.csdn.net/u013385925/article/details/80385873,不用在意上面的数字,知道有这些点就够了)
再将它们连在一起可得一条曲线,这就是 ROC 曲线
AUC(AUROC)值
Area Under Curve(Area Under Receiver Operating Characteristic curve)
TPR本质上是某种预测准确的概率,所以其越高越好,FPR本质是某种预测错误的概率,故应该越低越好。
从ROC角度来说,若一个模型的 RPR > 0.5 而 FPR < 0.5 则说明其预测效果优于随机瞎猜
一个好的分类器,反应到ROC曲线上就是一个向上突起的曲线,性能越好,突起越高,故可以用ROC曲线下的面积当作模型评估标准,该面积值就是AUC。突起越高,下面的面积就越大,AUC就越大
从AUC角度来说,若一个模型的 AUC < 0.5 则说明其预测效果还不如随机瞎猜
精确率(Precision)
表示所有预测为真的样本中,实际也为真的比例:
\[ Precision = \frac {TP} {TP + FP} \]
例如在死刑犯的判决预测上,我若预测某个人死刑,那么他最好是真的犯了死刑,不然误杀好人会引发灾难性的后果。对于那些真正犯了死刑而没有被抓的,那也总比误杀好人后果好。即宁可放过一千,也不误杀一个
或者说,某质检仪器检测出100辆有问题的汽车,但实际上这里面只有10辆车是有问题的,则该质检仪器的精确度仅为 10%
召回率(Recall)
即所有实际为真的数据中,预测也为真的比例:
\[ Recall = \frac {TP}{TP+FN} \]
它刻意忽略的实际为假的数据,这在某些情形下是很对的。
例如,对于癌症预测来说,我肯定希望对于真实得病的人预测的越准确越好,而没有得病的人,即使我将其预测有病,那也无伤大雅。也即宁可错杀一千,也不放过八百
也可以根据字面意思进行理解:4s店出售了10辆有问题的汽车,现对它们进行召回,但实际上只有6个车主响应了号召,则召回率为 60%
F-Score(F-measure)
从概念上看,召回率(Recall)和精确度(Precision)相互制约,一个高另一个就会低(FP越大,FN就越小)。然而很多情况下需要两者都能取得一个不错的平衡。此时就引入F-Score,它需要设定一个系数 β,来指定召回率和精确度重要程度
\[ \frac{β^2} {F_β} + \frac{1} {F_β} = \frac {β^2} {Recall} + \frac {1} {Precision} \]
由此可以看出,当 β 大于 1 时,若要是的 F 增大,则 Recall 增大的比例应该大于 Precision,即 Recall 更重要,反之同理
将上面的式子变形可得:
\[ F_β = (1 + β^2) \frac {Recall * Precision} {β^2 * Precision + Recall)} \]
当 β 取1时就是 F1-measure,表示他俩一样重要
\[ \begin{align} F1 &= 2\frac {Recal * Precision} {Precision + Recal} \\ &=\frac {2TP} {2TP + FP +FN} \end{align}\]
AUPR
类似于AUROC,它同样是将recal作为纵坐标,但是将横坐标替换为了 Precision,然后计算曲线下的面积,可以想象,因为两者呈负相关关系,所以曲线大致应该是一条从左上到右下的曲线。
AUROC vs AUPR
从概念上可以看出,AUPR的两个轴实际上都只关注了“真”样本(预测为真或者真正为真),所以如果实际需求只要求关注为真的样本,则注重使用AUPR(例如疾病的检测、死刑的判决等)
而AUROC中同时包含了对正负样本的统计,所以如果对两者都有要求,则使用AUROC(即对正负样本的判断都有一定要求,例如比赛输赢的预测)
准确率(Accuracy)
本文开头的例子,对分类模型最直接的评价。注意与精确度的区分
\[ Accuracy = \frac {TP + TN} {TP + TN + FP + FN} \]
PRO
我找到了这篇论文 Student-teacher anomaly detection with discriminative latent embeddings,其中有介绍PRO如何计算的,貌似就是AUPR