前言:
😊😊😊欢迎来到本博客😊😊😊
🌟🌟🌟 本专栏主要是记录工作中、学习中关于AI(Deep Learning)相关知识并分享。
😊😊😊 具体食用方式:可以点击本专栏【笔记目录】快速查阅您和我遇到的一样的问题、想查阅的知识以及其他相关问题。
🎁🎁🎁支持:如果觉得博主的文章还不错或者您用得到的话,可以悄悄关注一下博主哈,如果三连收藏支持就更好啦!这就是给予我最大的支持!😙😙😙
文章目录
- 图像分类篇
- (1) 混淆矩阵
- (2) Accuracy(准确率/精度)
- (3) Precision(精确度)/查准率
- (4) Recall(召回率)/敏感度/查全率/真正(阳)率TPR
- (5) Specificity(特异度)/TNR
- (6) 假正(阳)率FPR
- (7) Fβ-Score/F1-Score
- (8) P-R(Precision-Recall)曲线
- (9) ROC(Receiver Operating Characteristic)曲线
- (10) AUC(Area Under Curve)
- 总结:P-R曲线、ROC曲线、AUC关系、特点、用途
- 目标检测篇
在计算机视觉领域,不管是图像分类、目标检测、图像分割还是其他领域,评价其模型好坏都有对应的评价指标。下面对图像分类及目标检测领域常见的评价指标做个总结,两个领域也会有互通(相似)部分,其他领域后期有时间会在此博文基础上继续更新。 大家在平时科研、工作中也许会用到,本文争取用简单易懂方式总结出来。
图像分类篇
(1) 混淆矩阵
混淆矩阵不管是二分类,还是多分类都可能会用到,下面以二分类为例:
这里牵扯到三个方面:真实值,预测值,预测值和真实值之间的关系,以下以猫狗分类为例,猫为正例,够为反例:
情况 | 定义 | 举例 |
---|---|---|
True Positive(TP) 真正例 | 样本的真实类别是正例,并且模型识别的结果也是正例。 | 这是一张猫的图片(真实类别),模型识别为猫(预测结果)。 |
False Negative(FN) 假反例 | 样本的真实类别是正例,但是模型将其识别为负例。 | 这是一张猫的图片(真实类别),模型识别为狗(预测结果)。 |
False Positive(FP) 假正例 | 样本的真实类别是负例,但是模型将其识别为正例。 | 这是一张狗的图片(真实类别),模型识别为猫(预测结果)。 |
True Negative(TN) 真反例 | 样本的真实类别是负例,并且模型将其识别为负例。 | 这是一张狗的图片(真实类别),模型识别为狗(预测结果)。 |
形象的示例如下:
(2) Accuracy(准确率/精度)
准确率是最常见的分类任务评价指标,表示模型正确预测的样本数占总样本数的比例。缺点:但在某些不平衡类别的情况下,准确性可能不是一个很好的指标。
对于多分类而言,分子其实是混淆矩阵对角线样本之和,分母为所有测试样本之和。
(3) Precision(精确度)/查准率
精确度也叫查准率,注意:不要和上面的准确率混淆!!!它是指在所有被模型预测为正例的样本中,实际为正例的比例。
作用:精确度关注的是模型预测为正例的准确性。
公式为:
对应上述案例中,如下部分:
(4) Recall(召回率)/敏感度/查全率/真正(阳)率TPR
召回率的同义词比较多,它是指在所有实际为正例的样本中,被模型正确预测为正例的比例。
作用:召回率关注的是模型对正例的覆盖程度。
公式为:
对应上述案例中,如下部分:
(5) Specificity(特异度)/TNR
特异度要和上个含义做个区别,它是指在所有实际为反例的样本中,被模型正确预测为反例的比例,即TN
。
公式为:
对应上述案例中,如下部分:
(6) 假正(阳)率FPR
假正(阳)率要和特异度做个区别,它是指在所有实际为反例的样本中,被模型错误预测为正例的比例,即FP
,它正好与特异度相反。
公式为:
对应上述案例中,如下部分:
(7) Fβ-Score/F1-Score
Precision
和Recall
是互相影响的,理想情况下肯定是希望做到两者都高,但是一般情况下Precision
高、Recall
就低; Recall
高、Precision
就低。
为了均衡两个指标,我们可以采用Precision
和Recall
的加权调和平均来衡量,即Fβ-Score,公式如下:
通俗的就是:β越大,Recall的权重越大;β越小,Precision的权重越大。由于Fβ Score 无法直观反映数据的情况,同时业务含义相对较弱,实际工作用到的不多。所以,当β=1时,即为F1-Score值。
F1-Score是精确度和召回率的调和平均值。
作用:综合考虑了模型的准确性和覆盖率。F1-Score在不同类别不平衡的情况下比Accuracy准确性更具意义。
公式为:
其中β>1,更加注重召回率;F<1,值更加重视准确率。
(8) P-R(Precision-Recall)曲线
PR曲线的x轴代表:Recall召回率/查全率,也就是真正率;y轴代表:Precision精准率/查准率。
为了找到一个最合适的阈值满足我们的要求,我们就必须遍历0到1之间所有的阈值,而每个阈值下都对应着一对查准率和查全率,从而我们就得到了这条曲线。PR曲线比较关注于正样本的情况。它本身没有关注负样本,每条P-R曲线代表一个类别。
如何看这张图?
如果某一类(条)PR曲线完全“包住”,可以判断后者的性能优于前者,像上图中学习器A的性能就优于学习器C;
若是两个学习器的PR曲线发生交叉,像A和B,就比较难判断哪个学习器比较好,只能在查准率或查全率条件单独进行比较。
这里引入**平衡点(Break-Even Point,BEP)**的概念,平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好。或者采用F1-Score,F1-Score值越大,我们可以认为该学习器的性能较好。
(9) ROC(Receiver Operating Characteristic)曲线
准确率、精确率、召回率 和 F1-score 前面介绍了都是单一的数值指标。如果想观察分类算法在不同的参数下的表现,此时可以使用一条曲线,即 ROC。
ROC 曲线可以用评价一个分类器在不同阈值下的表现。横纵坐标均基于真实值为分母。
横坐标为假正率( FPR,FPR = FP / [ FP + TN]),表示负样本中错误预测为正样本的概率。纵坐标为真正率(TPR,TPR = TP / [ TP + FN]),表示正样本中预测正确的概率。
根据分类识别的阈值,可生成不同的FPR值和TPR值,用于绘制ROC曲线。曲线越接近左上角越好。ROC曲线兼顾了正,负样本常用于分类器的评价指标。
上图ROC 曲线中,有四个关键点:
(0,0)点:FPR=TPR=0,表示分类器预测所有的样本都为负样本;
(1,1)点:FPR=TPR=1,表示分类器预测所有的样本都为正样本;
(0,1)点:FPR=0,TPR=1,此时FN=0且FP=0
,表示最优分类器,样本都被正确分类;
(1,0)点:FPR=1,TPR=0,此时TP=0且TN=0
,表示最差分类器,样本都被错误分类;
我们可以通过一个案例来理解:
如在医学诊断的主要任务是尽量把生病的人群都找出来,也就是TPR越高越好。而尽量降低没病误诊为有病的人数,也就是FPR越低越好。
不难发现,这两个指标之间是相互制约的。**如果某个医生对于有病的症状比较敏感,稍微的小症状都判断为有病,那么他的TPR应该会很高,但是FPR也就相应地变高。**最极端的情况下,他把所有的样本都看作有病,那么TPR达到1,FPR也为1。
(10) AUC(Area Under Curve)
AUC 值为 ROC曲线下所覆盖的区域面积,这个面积的数值不会大于1。场景:当两个模型的ROC曲线发生交叉,则很难说哪一个模型更好,这时候可以用AUC 来作为一个比较合理的判据,这样可以直观的评价分类器的好坏,值越大越好。注意!!ROC是曲线,AUC是区域。
AUC的值代表分类器的优劣:
(1) AUC=1:这是理想的分类器;
(2) AUC=0.5:相当于随机预测(跟抛硬币一样),此时分类器不可用;
(3) 0.5<AUC<1:优于随机预测,这也是实际作用中大部分分类器所处的状态;
(4) AUC<0.5:总是比随机预测更差;
总结:P-R曲线、ROC曲线、AUC关系、特点、用途
P-R曲线特点
(1) P-R曲线使用了Precision和Recall,因此PR曲线的两个指标都聚焦于正例。类别不平衡问题中由于主要关心正例,所以在此情况下PR曲线被广泛认为优于ROC曲线;
(2) P-R曲线右上越凸,效果越好;
ROC曲线特点
(1) 当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。因为TPR聚焦于正例,FPR聚焦于与负例,使其成为一个比较均衡的评估方法。
(2) ROC 曲线展示了分类器在不同阈值下的综合性能,对分类器的整体能力进行评估。AUC 提供了一个定量指标来衡量 ROC 曲线下的性能。
总之,P-R 曲线和 ROC 曲线提供了不同维度的分类器性能评估。P-R 曲线适合不平衡数据集,重点关注正例的预测性能;而 ROC 曲线和 AUC 适用于整体性能评估,对类别不平衡和阈值选择不敏感。
使用场景
(1) ROC曲线由于兼顾正例与负例,所以适用于评估分类器的整体性能,相比而言PR曲线完全聚焦于正例。
(2) 如果有多份数据且存在不同的类别分布,比如信用卡欺诈问题中每个月正例和负例的比例可能都不相同,这时候如果只想单纯地比较分类器的性能且剔除类别分布改变的影响,则ROC曲线比较适合,因为类别分布改变可能使得PR曲线发生变化时好时坏,这种时候难以进行模型比较;反之,如果想测试不同类别分布下对分类器的性能的影响,则PR曲线比较适合。
(3) 如果想要评估在相同的类别分布下正例的预测情况,则宜选PR曲线。类别不平衡问题中,ROC曲线通常会给出一个乐观的效果估计,所以大部分时候还是PR曲线更好。
(4) 最后可以根据具体的应用,在曲线上找到最优的点,得到相对应的precision,recall,f1 score等指标,去调整模型的阈值,从而得到一个符合具体应用的模型。
目标检测篇
AP,mAP,IOU(CIOU/DIOU…)等待更新。。。