如何理解准确率(accuracy)和查准率(Precision)和召回率(Recall)
这三个概念在第一次接触的时候很容易弄混,又容易被遗忘。
建议大家根据英文去进行记忆,因为中文翻译的时候有许多叫法,会影响我们的理解,不过本文采用的中文是在我看了许多翻译之后,觉得中文最为贴切的一个。
本文分两个部分,先说定义,之后转载一个生动的例子进行理解。
定义:
- 准确率(accuracy) = 预测对的/所有 = (TP+TN)/(TP+FN+FP+TN)
- 查准率 (precision) = TP/(TP+FP)
- 召回率(recall) = TP/(TP+FN)
For reference:
- Accuracy = (true positives + true negatives) / (total examples)
- Precision = (true positives) / (true positives + false positives)
- Recall = (true positives) / (true positives + false negatives)
- F_1F1 score = (2 * precision * recall) / (precision + recall)
视频截图:
生动例子(转载):
假设你的女票在过去10年(还没修成正果?)里,每年都会送一份生日礼物给你,有一天,她突然问你:
“记得这十年里你生日我都送过什么吗?”
这不是一个简单的问题,或者说这不是一个问题,这就是一颗雷
为了续命,你随即对自己的大脑进行了地毯式搜索,
这时,召回率(Recall)就等于你回答正确的礼物数和你女票在你生日时送你的礼物数的总和的比值:
比如,你准确地回答出10件礼物,那么召回率就为:10/10即100%
如果只准确地回忆起了7件,那么召回率(Recall)就是70%
但是,你所有的回答中可能有错误回答,比如,你一共给出了15个答案,其中5个是错的,这证明,你虽然可以回答出所有礼物,但是却不那么精确,因此,查准率这个概念便出现了:
查准率(Precision)就是10/15,约为67%
也就是说,尽管你给出了所有的答案,但是你总共回答了15次,虽然100%召回了,但是精确率只有66.67%,如果你回答了不止15次呢,如果是100次呢?女票眼里,你也已经死了。也就说,精确率太低,就算召回率是100%, 若不准确,就算召回了百分之百,也没有用的。
所以,我们在回答问题的时候,应该在百分百确定的情况下,尽可能多地回答问题。在学习的过程中,我们也应该不断地提高我们 Precision和recall 的能力!我们要做到又准确又全面!!这就是这个背后的生活哲学。
算法也是一样,可以百分百召回的算法不一定是最优算法,因此,F1 Score就显得尤为重要。是的,走些时候要进行综合地考虑问题。
转载来源:
链接:https://www.zhihu.com/question/19645541/answer/206624303