从女友和老妈的使用角度看精确率(precision)和召回率(recall)的不同

机器学习和深度学习中,精确率和召回率经常会被提起,但因为定义有点绕了,许久不用后,又通常容易忘记或者是搞混。

本文以一个稍显调皮的例子说明两者的不同,以便自己能够加深理解。

定义

Precision = TP / (TP + FP)
Recall = TP / (TP + FN)

那么 TP、FP、FN 都代表什么呢?

记住一点,这些概念都是基于预测结果和真实结果的比对。

TP

TP 是 True Positives 的缩写,指的是真正的正样本,也可以叫做真阳性。

真实情况:正样本。
预测结果:正样本。

FN

FN 是 False Negatives 的缩写,指的是假的负样本,也叫做假阴性。

真实情况:正样本。
预测结果:负样本。

TN

TN 是 True Negatives 的缩写,指的是真的负样本,也叫做真阴性。

真实情况:负样本。
预测结果:负样本。

FP

FP 是 False Positives 的缩写,指的是假的正样本,也叫做假阳性。

真实情况:负样本。
预测结果:正样本。

精确率 (Precision)

P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP

精确率表示的是在预测所有为正类的结果中,真实的正类的比例。

怎么理解呢?

来一个场景,这个需要妈妈的配合。

周一 周二 周三 周四 周五
妈妈 妈妈 外卖 外卖 妈妈

上面这张表是你上个月某一周晚餐的情况,妈妈代表晚餐是妈妈做的,外卖代表这一天你吃的外卖。

有一天,因为某些原因,你需要回忆一下那一周的晚餐情况。

你努力想了想,只记得 4 天的情况,然后说出了自己的答案。

周一 周二 周三 周四 周五
妈妈 妈妈 外卖 外卖 妈妈
妈妈 外卖 妈妈 妈妈

假如预测结果是妈妈代表 Positive.

那么在 4 个结果中,你预测了 3 个 Positive。

但是在这里。

TP = 2 (周一,周五)
FP = 1 ( 周四)

所以呢,精确率是多少?

P r e c i s i o n = T P T P + F P = 2 2 + 1 = 0.67 Precision = \frac{TP}{TP+FP}=\frac{2}{2+1}=0.67 Precision=TP+FPTP=2+12=0.67

得知这个结果时候,你的母亲露出标志性的慈母笑。

"我儿子真棒!妈妈做的饭菜大多都记得。"

召回率 (Recall)

R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP

召回率表示的是,在所有正样本中,被预测出来的比例。

怎么理解呢?

还是同样的场景,不过这次需要你女友的配合。

周一 周二 周三 周四 周五 周六 周日
外卖 外卖 女友 外卖 女友 外卖 女友

去年的某一周,这是你的晚餐情况。

女友代表那天晚餐她做的,外卖代表你叫的外卖自己解决。

因为某种原因,你需要回忆那一周的情况。

因为时间过得太久,你只能拍脑袋决定了。

周一 周二 周三 周四 周五 周六 周日
外卖 外卖 女友 外卖 女友 外卖 女友
外卖 外卖 外卖 外卖 女友 女友 外卖

女友选项是正样本。

你的预测结果中,有 2 个正样本。
但是,TP = 1, FP = 1。

另外,周三和周日属于 FN 的情况。

所以,召回率是多少呢?

R e c a l l = T P T P + F N = 1 1 + 2 = 0.33 Recall = \frac{TP}{TP+FN}=\frac{1}{1+2}=0.33 Recall=TP+FNTP=1+21=0.33

这个结果如何呢?

你自己心里应该有数。

“面对疾风吧!!!”

总结

要区分精确率和召回率要看分母。

精确率的分母是你预测的所有的正样本数量,因此精确率代表了区分负样本的能力。

召回率的分母是所有真实情况的正样本数量,召回率代表了区分正样本的能力。

你可能感兴趣的:(从女友和老妈的使用角度看精确率(precision)和召回率(recall)的不同)