ML和DL算法评估(Precision/Recall/F1 score/Specificity/ROC/AUC/AP)总结
机器学习和深度学习算法评估
为了包含尽可能多的性能指标,我们这里只讨论二分类(0/1)问题,比较常见的性能指标包括但不仅限于Precision、Recall(又称为Sensitivity)、Accuracy,F1 score(f1),Specificity,ROC,AUC,AP(mAP),下面我们讨论一下这些指标的具体含义。
注:暂且用1代表正样本,0代表负样本
TP:实际为1,预测为1,预测正确,预测值为1(正样本),记为True Positive
TN:实际为0,预测为0,预测正确,预测值为0(负样本),记为True Negative
FP:实际为0,预测为1,预测错误,预测值为1(正样本),记为False Positive
FN:实际为1,预测为0,预测错误,预测值为0(负样本),记为False Negative
- Precision(精确率)
解释:精确率关注正样本,意义就是在所有预测为1(正样本)的样本中,预测正确的概率 - Recall(召回率,又称为Sensitivity(敏感性))
解释:召回率(敏感性)同样也是关注正样本,意义就是在所有实际为1(正样本)的样本中,预测正确的概率 - Accuracy(准确率)
解释:准确率就是在所有样本中,预测正确(无论预测结果,只要预测正确即可)的样本占总样本的比例 - F1 score
解释:F1 score综合反映了Precision和Recall,是两者的在模型中的综合体现,是较常用的一个指标 - Specificity(特异性)
解释:Spe关注于负样本,等价于正样本中的Recall,在医学中此指标使用较多 ROC(Receiver operating characteristic)曲线及其下的面积AUC(Area Under Curve)
ROC曲线以TPR(Recall或者Sen)为纵轴,FPR(1-TPR)为横轴,根据不同的threshold画出的曲线,如何画出ROC曲线呢?通常情况下,我们是按照threshold=0.5计算TPR、FPR的,当我们选择0.1~1.0之间不同的值作为threshold时,分别求出TPR、FPR,将其值作为坐标,连接点形成曲线,形成ROC曲线,其下的面积称为AUC,AUC面积越大,代表模型预测效果越好,如下图所示:
注:图为五折交叉验证的ROC曲线和相应的AUC值,其中的黑色曲线为平均值。在这里有必要提出一个新的概念叫做约登系数,其计算方式为Sen+Spe-1,其等价形式为Sen-(1-Spe)=TPR-FPR,反映在ROC曲线图中就是y-x,最大约登系数反映了模型最好的分辨能力,此时的Sen和Spe最接近真实值。Average precision(&mAP)
AP:只是AP代表以recall和precision为横纵坐标,取不同的threshold时所围成的面积;
mAP:当分类器任务不仅仅局限于二分类时,比如是imageNet上的1k分类任务,我们计算所有类的AP,而后进行平均,就得到了mAP
以上论述的性能指标,在Machine Learning和Deep Learning中较为常用,除此之外还有一些其他的指标,such as:AP、mAP,Hamming loss(汉明损失),有时间再和大家一起分享讨论。
作者:gengmiao 时间:2018.02.25,原创文章,转载请保留原文地址、作者等信息