混淆矩阵和指标
机器学习中简单的二分类任务的混淆矩阵:
查准率与查全率的计算:
F1的计算:
二分类任务的PR曲线
PR曲线的横坐标是P,纵坐标是R,这么多PR值是怎么得到的呢?首先定义:若某个样本预测概率值大于某个阈值则为正样本。步骤如下:
1,将模型在测试集上预测结果的概率值从大到小进行降序排列。
2,以每个概率值作为阈值,统计当前阈值下的预测正负样本数量,得到相应的TP,TN,FP,FN,计算出相应的P和R。
3,将不同阈值下的PR值连接起来,就是PR曲线。
目标检测中的PR,AP,mAP
仿照二分类任务的PR曲线可以得出目标检测中PR曲线是怎样得到的:
1,将模型在测试集上预测的所有BB按照置信度值从大到小进行降序排列。
2,以每个置信度值作为阈值,按照iou阈值等算法确定预测框是正样本还是负样本,得到相应的TP,TN,FP,FN,计算出相应的P和R。
3,将不同阈值下的PR值连接起来,就是PR曲线。
上述步骤只是为了方便理解而对解决过程的简单描述,算法会描述的更具体。
针对多类别的目标检测,可以得到每个类别的PR曲线。
AP(Average Precision)是平均查准率的意思,是对某类物体查准率的平均。当我们获得了这类物体的PR曲线后,先进行曲线平滑,再将横坐标十等分获得11个点,取11个点的P值平均即为此类别的AP。不同数据集(例如coco和Pascal Voc)计算AP的方法可能会不同。最后将所有类别的AP值取平均以获得mAP。
语义分割中的PR
因为最近在做语义分割的实验,要计算P,R和F1,所以说下怎么计算。假设只有一个要分割的类别,由于语义分割是像素级别的分类任务,可以使用分类的混淆矩阵求解PR。
遍历预测图的所有像素位置,假设分类的阈值为0.5,那么预测值大于0.5的位置为前景,否则为背景。将所有位置的预测结果与真实分割图(真实分割图的前景为正样本,背景为负样本)对比,即可得到每个位置是TP,FP,FN或TN,即可求出P,R,F1。