看 Coursera 机器学习课的时候接触到 Trading Off Precision and Recall 的概念, 那么问题来了, 如何区分 Precision 和 Recall 使得我不会记混, 尤其 Recall 是什么鬼?

Screenshot of Andrew Ng's ML lecture notes on CourseraScreenshot of Andrew Ng's ML lecture notes on Coursera

Table of Contents

  1. Recap: Precision & Recall Trade-off
  2. Explain to me like I’m 5

Recap: Precision & Recall Trade-off

对于 P&R 的详细介绍 one Google away 这里就略了, 这张经典的图也许可以让你回忆一下:

Precision vs. RecallPrecision vs. Recall

然而这图仍然没有解释 Recall 的含义. 以及中文翻译”召回率”? WTF?

P.S. 从上图可以发现一个有意思的地方: 在 ML / IR 中 (尤其对于 Skewed Classes), 我们一般不关心 True Negative 的部分 (Precision & Recall 计算公式中都没有出现). 想想也是, 因为我们只是不想让 TN 太多污染我们的结果. 但当我们选择的指标不同时, 有时就要用到 TN 的值 (比如 Accuracy).

Explain to me like I’m 5

在 Quora 上找到了我想要的答案, 稍作改动译如下:

想象一下, 你的女朋友在过去的十年里, 每年都给你生日惊喜… 然而今年,

She: Sweetie, do you remember all your birthday surprises from me?

You: O__O …

The simple question makes your life in danger.

为了活下去, 你需要回忆 (Recall) 那些年的生日惊喜. 所以, 得到 Recall 公式:

比如你10件事中你想起了7件, 那么 $Recall = 7/10 = 0.7$

以上例子默认你想起的都是正确的, 但是你可能会记错, 比如她并没有送过你机械键盘, 是你自己买的, 或者你想靠运气多瞎猜几个, 那么就得到了 Precision 公式, 表示你的准确率:

例如你想起了8件事, 但是只有4件事正确的, 这时 $Precision = 4 /8 = 0.5$

作为你的女朋友, 她不希望看到:

  1. 你记得不对又不全 (Low Precision, Low Recall): 不需要解释了吧
  2. 你记得对但是不全 (High Precision, Low Recall): 你很诚实, 一说一个准, 然而不超过3件就说不下去了
  3. 你记得全但是不对 (Low Precision, High Recall): 听起来有点绕, 但其实就是你是一个不老实的人, 说了一堆常见的生日惊喜, 然后猜中了不少, 当然猜错的更多

记得对又记得全自然最好, 但毕竟人无完人, 于是她就得权衡你的用心程度和诚实度, 也就是本文的标题, 即所谓的 Precision & Recall Trade-off 了 ;D