召回率(Recall)
也被称为真正率(True Positive Rate),是指在所有正类中,模型正确识别出的正类所占的比例。召回率越高,意味着模型遗漏的正类越少。
\(Recall = \frac{真正例(TP)}{真正例(TP)+假负例(FN)}\)
- 例子:
假设在一个大型购物中心内,有一个监控系统负责行人重识别任务,目的是为了找到一个失踪儿童的行踪。在一段时间内,这个儿童实际上出现在监控摄像头前20次。
如果行人重识别系统成功地在这20次出现中识别出儿童18次,那么召回率为90%(即18/20)。
高召回率情况:如果行人重识别系统成功地在这20次出现中识别出儿童18次,那么召回率为90%(即18/20)。
召回率和精确率之间的关系
- 精确率是指系统识别为特定行人的所有实例中,真正是这个行人的比例。高精确率意味着系统在标记一个实例为特定行人时更加准确,减少误判。
- 例子:
假设在一天的监控视频中,一个特定行人实际出现在100个不同的场景中。我们的行人重识别系统尝试识别这个行人。
如果我们调整系统以提高召回率,可能会降低识别的门槛,使得系统能够识别出该行人在95个场景中的出现,实现了高召回率(95%)。但这种设置也可能导致系统将其他一些并非该行人的人误认为是目标行人,在200个场景中标记了120次,其中只有95次是正确的,导致精确率下降(95/120=79%)。
相反,如果我们调整系统以提高精确率,可能会提高识别的标准,使得系统在标记时更加谨慎。这样系统可能只在其中70个场景正确识别了该行人,并且几乎没有误判,比如在70个场景中标记了72次,其中70次是正确的,精确率非常高(97%)。然而,这意味着系统错过了30个场景,召回率下降(70%)。
个人理解
当你设置一个比较小的阈值时, 也就是让一些不是本例中的人也识别成人, 这样会使得召回率提高, 但是里面多了很多实际上不是本例的人, 从而会使得精确率下降。
而当你设置了一个较高的阈值时, 也就是经可能让模型识别出本例的人是人时, 可能会让模型将一些本例误判成错例, 虽然精确率上升了, 但是召回率却下降了。