机器学习评价方法

 一、 Recall & Precision

关于Precision和Recall,在Ng的cousera课程 week6 lecture11里有

假设二分类问题,正样本为x,负样本为o:

准确率存在的问题是当正负样本数量不均衡的时候,精心设计的分类器最后算准确率还不如直接预测所有的都是正样本。

 

用Recall和Precision来衡量分类效果,可以使用F1 Score = 2PR/(P+R)来判断分类效果。

调整分类器,移动到这里:

Recall达到百分之一百,但同时Precision也下降了:把不是负样本也分类成了正样本。一般来说,R高,P低,或者R低,P高。大概长这样

 

一个好的分类方法当然是希望二者都尽量高,也就是右图红色线那样,所以提出又提出了一个衡量标准:mAP=∫P(R)dR,(PR曲线面积越大越好)。

记得微软ECCV14的人脸检测就是先用OpenCV里的VJ方法,把Recall调得很高,尽量保证不漏检,同时带来的问题是Precision很低,有很多不是脸的东西,再通过3000帧人脸对齐方法,迭代几次,一边对齐人脸一边把不是脸的排除掉。

二、 TPR & FPR & RoC & AUC & EER

ROC曲线和TPR、FPR的解释:

用真阳、伪阳、伪阴、真阴来理解TP、FP、TN、FN比较容易记住。

TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率。TPR=TP/(TP+FN)

FPR:在所有实际为阴性的样本中,被错误地判断为阳性之比率。FPR=FP/(FP+TN)

ROC和AUC也是针对正负样本数量不均衡的,详解参考这里

ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少。亦可通过分别计算各个试验的ROC曲线下的面积(AUC)进行比较,哪一种试验的 AUC最大,则哪一种试验的诊断价值最佳。

kISSME(cvpr12)里的ROC曲线:

 

posted @ 2017-12-12 12:31  tszs_song  阅读(3964)  评论(0编辑  收藏  举报