Efficient-Segmentation-Networks icon indicating copy to clipboard operation
Efficient-Segmentation-Networks copied to clipboard

About metric mistake, recall and precison

Open DCC-lzhy opened this issue 3 years ago • 1 comments

https://github.com/xiaoyufenfei/Efficient-Segmentation-Networks/blob/0f0c32e7af3463d381cb184a158ff60e16f7fb9a/utils/metric/metric.py#L43-L56 it's reverse. ` # 理解混淆矩阵生成的代码的关键,行为真实值,列为预测值 # Pii为预测正确的数量,Pij=FN, Pji=FP # 每一列之和表示被预测为该类别的样本数量 = TP+FP, precision = TP/(TP+FP), 所有被预测为正类中真正正类的比例 # 每一行之和表示该类别的真实样本数量 = TP+FN, recall = TP/TP+FN , 所有正类中,被找出的正类的比例

def recall(self):
    recall = 0.0
    class_recall = []
    for i in range(self.nclass):
        recall_i = self.M[i, i] / np.sum(self.M[i, :])
        recall += recall_i
        class_recall.append(recall_i)
    return recall / self.nclass, class_recall

def accuracy(self):
    accuracy = 0.0
    class_accuracy = []
    for i in range(self.nclass):
        accuracy_i = self.M[i, i] / np.sum(self.M[:, i])
        accuracy += accuracy_i
        class_accuracy.append(accuracy_i)
    return accuracy / self.nclass, class_accuracy`

So, change https://github.com/xiaoyufenfei/Efficient-Segmentation-Networks/blob/0f0c32e7af3463d381cb184a158ff60e16f7fb9a/utils/metric/metric.py#L47 and https://github.com/xiaoyufenfei/Efficient-Segmentation-Networks/blob/0f0c32e7af3463d381cb184a158ff60e16f7fb9a/utils/metric/metric.py#L54

DCC-lzhy avatar Mar 23 '21 02:03 DCC-lzhy

@DCC-lzhy Yes, I think your analysis makes sense. But this project may still use mIoU, so this may be less noticed. And it should be called "precision" here.

pipi-hua avatar Jun 28 '21 07:06 pipi-hua