61-精准率和召回率

精准率和召回率

  上一篇博客介绍了混淆矩阵,它是在分类任务中非常重要的工具,我们通过混淆矩阵可以得到更加好的来衡量我们的分类算法好坏的指标。这一篇博客主要介绍两个通过混淆矩阵才可以得到的指标:精准率和召回率

  我们拿出上一篇博客中癌症预测的例子所得到的混淆矩阵:

61-精准率和召回率
  

  那么精准率( p r e c i s i o n precision precision),它的计算公式是:

61-精准率和召回率

  那么我们将实际数据代入得到的精准率为:

61-精准率和召回率

  所谓的精准率,就是预测数据为 1,相应预测对了的概率是多少。

61-精准率和召回率
  为什么把这个值作为精准率呢?这是因为通常我们在这种有偏的数据中我们将分类 1 作为我们真正关注的对象,比如说在医疗中,我们将 1 作为真正的患病。换句话说,如果这个混淆矩阵是一个癌症预测系统,这个精准率就是指预测癌症的成功率。在这里精准率为 40%,就可以解释为每做 100 次患病的预测,平均有 40 次预测是对的。再比如放在金融系统中,我们可能想要预测一个人申请信用卡是否有风险,这种时候我们通常都会把类别 1 作为有风险的那一类人群,这是因为有风险的这类人群是我们关注的对象。

  所以在这里需要注意,在有偏的数据中,我们通常都将 1 作为我们关注的那个事件,所以精准率就是我们预测我们关注的那个事件的准确率。

  那么和精准率相对应的是召回率( r e c a l l recall recall)。它的计算方式如下:

61-精准率和召回率
  那么将具体数字代入计算得:

61-精准率和召回率
  召回率的分母就是真实值为 1 的那一行,而分子代表的是真实值为 1,并且预测值也为 1 的数据个数,换句话说,就是我们关注的事件发生了并且正确预测相应的数量。对于精准率,它们的分子都是 T P TP TP,不同的在分母,召回率的分母为真实值的那一行的数据总和,而精准率的分母为预测值的那一列的数据总和。

  那么召回率为 80%,可以解释为每当有 100 个癌症患者的话,通过我们现在的机器学习算法,我们能够成功的找到其中 80 个癌症患者。

  一定要注意精准率和召回率的区别!!下面这张图也很好的反映了精准率和召回率的区别。

61-精准率和召回率
  
  最后我们再来说说为什么精准率和召回率是比之前的分类准确度更好的指标呢?

  我们还是以癌症预测系统为例,假设我们有 10000 个人,我们预测所有人都是健康的,那么相应的混淆矩阵如下:

61-精准率和召回率
  
  那么相应的准确率为 99.9%,相应的精准率为 0 / (0 + 0) 没有任何意义。那么我们相应的召回率 0 / (10 + 0) = 0 也是 0。所以对于这个预测系统来说,尽管它的准确率高达 99.9%,但是它的召回率和精准率都是 0。所以通过这两个指标判断出来了这个预测算法是完全没有用的,这就是精准率和召回率的意义。在极其有偏的数据中,不看准确率,而看精准率和召回率才能够更加好的评价我们的分类系统的好坏。