【ML基础】PR/ ROC 等评价指标

准确率/精确率/召回率/查准率/查全率/真正率/假正率。。

TP/TN/FP/FN/TPR/FPR

F1-Score

PR:Precision-Recall

ROC:TPR-FPR

AUC:ROC;

 

 

准确率 Accuracy

正确分类的样本数与总样本数之比(预测对的总样本 / 总总样本数)

精确率 Precision

判定为正例中真正正例数与判定为正例数之比(预测满足指标的样本中有多少是预测正确的)

召回率 Recall

被正确判定为正例数与总正例数之比 (实际满足指标的样本中有多少被正确预测)

 

recall 和 precison 都是针对二分类的,所以如果有多个类别则需分别计算;


 

问题源自:如何判断一个数据集正负样本是均衡的?

PR和ROC在面对不平衡数据时的表现是不同的。在数据不平衡时,PR曲线是敏感的,随着正负样本比例的变化,PR会发生强烈的变化。而ROC曲线是不敏感的,其曲线能够基本保持不变。

ROC的面对不平衡数据的一致性表明其能够衡量一个模型本身的预测能力,而这个预测能力是与样本正负比例无关的。但是这个不敏感的特性使得其较难以看出一个模型在面临样本比例变化时模型的预测情况。而PRC因为对样本比例敏感,因此能够看出分类器随着样本比例变化的效果,而实际中的数据又是不平衡的,这样有助于了解分类器实际的效果和作用,也能够以此进行模型的改进。

综上,在实际学习中,我们可以使用ROC来判断两个分类器的优良,然后进行分类器的选择,然后可以根据PRC表现出来的结果衡量一个分类器面对不平衡数据进行分类时的能力,从而进行模型的改进和优化。

real world data经常会面临class imbalance问题,即正负样本比例失衡。根据计算公式可以推知,在testing set出现imbalance时ROC曲线能保持不变,而PR则会出现大变化。

PRC相对的优势

当正负样本差距不大的情况下,ROC和PR的趋势是差不多的,但是当负样本很多的时候,两者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。解释起来也简单,假设就1个正例,100个负例,那么基本上TPR可能一直维持在100左右,然后突然降到0。这就说明PR曲线在正负样本比例悬殊较大时更能反映分类的性能。

    在正负样本分布得极不均匀(highly skewed datasets)的情况下,PRC比ROC能更有效地反应分类器的好坏。

 

二分类:

 

语义分割二类:

假设只有一个要分割的类别,由于语义分割是像素级别的分类任务,可以使用分类的混淆矩阵求解PR。

遍历预测图的所有像素位置,假设分类的阈值为0.5,那么预测值大于0.5的位置为前景,否则为背景。将所有位置的预测结果与真实分割图(真实分割图的前景为正样本,背景为负样本)对比,即可得到每个位置是TP,FP,FN或TN,即可求出P,R,F1。

也就是一个阈值,对应一个PR曲线,那么如何选取合适的阈值呢?

 

多分类呢?

 

检测任务的PR

 

ref:

1.

https://blog.csdn.net/guzhao9901/article/details/107961184

2.

https://www.cnblogs.com/laozhanghahaha/p/12383363.html

3.

https://blog.csdn.net/weixin_31866177/article/details/88776718

4.

https://www.cnblogs.com/laozhanghahaha/p/12374027.html

5.检测

https://blog.csdn.net/u014453898/article/details/108210508

 

上一篇:常用Linux命令


下一篇:C#开发中linq与lambda写法对照