精确率、召回率、F1 值、ROC、AUC 各自的优缺点
本文主要汇总了知乎的回答[https://www.zhihu.com/question/30643044]
ROC曲线的概念:http://blog.****.net/abcjennifer/article/details/7359370
PRC曲线的概念: http://blog.****.net/u012089317/article/details/52156514
1. 总体介绍
ROC:ROC是光滑的, 基本可以判断没有太大的overfitting。然后看auc的大小,就是ROC曲线下方的面积,面积越大一般认为模型越好。
PRC:先看光不光滑,上面的比下面的好。连接(0,0)和(1,1)的线,线和PRC重合的地方的F1是这条线最大的F1(光滑的情况下),此时的F1对于PRC就好象AUC对于ROC一样。一个数字比一条线更方便调模型。
2. 使用场合:
- 如果没有data imbalance,倾向于用ROC;
- 如正样本远小于负样本,PRC更敏感因为用到了precision=(TP/(TP+FP)),所以应该用PRC.
- 正样本远大于负样本,PRC和ROC差别不大,都不敏感
下面是用图表证明:
当正负样本差距不大的情况下,ROC和PR的趋势是差不多的,但是当负样本很多的时候,两者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。解释起来也简单,假设就1个正例,100个负例,那么基本上TPR可能一直维持在100左右,然后突然降到0.如图,(a)(b)分别为正负样本1:1时的ROC曲线和PR曲线,二者比较接近。而(c)(d)的正负样本比例为1:10,这时ROC曲线效果依然很好,但是PR曲线则表现的比较差。这就说明PR曲线在正负样本比例悬殊较大时更能反映分类的性能。
3. 应用场景举例
- 地震的预测对于地震的预测,RECALL值是越大越好,对PER没有太多的要求,换句话说就是我们能把每次地震都预测出来,即使发出1000次警报,如果10次地震都包含在1000次警报里,那就是满足期望的;但是1000次里要是漏了两次,却是不能接受的
- 嫌疑人定罪基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。及时有时候放过了一些罪犯(recall低),但也是值得的。对于分类器来说,本质上是给一个概率,此时,我们再选择一个CUTOFF点(阀值),高于这个点的判正,低于的判负。那么这个点的选择就需要结合你的具体场景去选择。反过来,场景会决定训练模型时的标准,比如第一个场景中,我们就只看RECALL=99.9999%(地震全中)时的PRECISION,其他指标就变得没有了意义。