刚开始看这方面论文的时候对于各类评价方法特别困惑,还老是记混,不彻底统计下,备忘。html
关于召回率和精确率,假设二分类问题,正样本为x,负样本为o:git
准确率存在的问题是当正负样本数量不均衡的时候:github
精心设计的分类器最后算准确率还不如直接预测全部的都是正样本。.net
用Recall和Precision来衡量分类效果,可使用F1 Score = 2PR/(P+R)来判断分类效果。设计
调整分类器,移动到这里:3d
Recall达到百分之一百,但同时Precision也降低了:把不是负样本也分类成了正样本。通常来讲,R高,P低,或者R低,P高。大概长这样:orm
从这里偷来的图htm
一个好的分类方法固然是但愿两者都尽可能高,也就是右图红色线那样,因此提出又提出了一个衡量标准:mAP=∫P(R)dR,(PR曲线面积越大越好)。blog
固然不一样应用有不一样需求,仍是要根据具体应用设计。ci
记得微软ECCV14的人脸检测就是先用OpenCV里的VJ方法,把Recall调得很高,尽可能保证不漏检,同时带来的问题是Precision很低,有不少不是脸的东西,再经过3000帧人脸对齐方法,迭代几回,一边对齐人脸一边把不是脸的排除掉。
另外还有 ROC AUC 及其余各类......
ROC和AUC也是针对正负样本数量不均衡的,参考这里
ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少。亦可经过分别计算各个试验的ROC曲线下的面积(AUC)进行比较,哪种试验的 AUC最大,则哪种试验的诊断价值最佳。
kISSME(cvpr12)里的ROC曲线:
关于Precision和Recall,在Ng的cousera课程 week6 lecture11里有