有时我们会想为什么评价一个模型的好坏既要精确率还要召回率呢?光要精确率不就好了,精确率高的话不就是检测的准确吗?不就代表模型比较好吗?
其实不然,精确率指的是模型查的准不准,召回率是模型查的全不全。举个例子,一张图片中有5个手机,我设计了一个模型,想要它检测手机。我不仅希望这个模型检测的正确,还希望模型能把图片中的5个手机全部检测出来,这才代表模型还不错。
比如上图一共5个手机,而模型只检测出来了两个,还有三个没检测出来,显然这个模型不够好,也就是查的不够全,让我们看一下此模型的精确率(Precision)以及召回率(Recall):
根据公式:,TP代表的是是手机且被检测为手机的数量,此例中TP的值为2,FP是指不是手机被检测为手机的数量,此例中FP的值为0,此时发现Precision的值为1,表示模型查的非常精确。接着计算召回率的值:,其中TP仍然是指是手机被检测出来的数量,为2,FN指的是是手机但没被检测出来的数量,此例中FN值为3,还有3个手机没被检测出来,所以Recall的值为0.4,值很低。
针对上个例子我们可以得到结论:并不是模型的精确率高就一定好,精确率高值能说明检测出来的对的比较多而已,却不一定检测的全,我们不仅要看精确率的值还要看召回率的值才能评价此模型的性能怎样。