准确率(precision)和召回率(recall)利用场景的解释与辨析
准确率(precision)和召回率(recall)
概念简介
在机器学习模型评估中,准确率和召回率是一对相互制约的性能度量指标。对于一个二分类问题,样本本身有正有负,而我们的学习器的判断也是有正有负。由于数据和算法等因素,我们的学习器的判断的结果往往不会和测试样本的真实答案完全吻合,这时就需要度量指标来表征该学习器的性能,常见的是准确率与召回率。
准确率和召回率定义非常明确,但是由于名称比较费解,尤其是召回率,致使很多人将这两个概念混淆。在周志华老师的西瓜书里面,将这两个词分别翻译为查准率(precision)和查全率(recall),这样可以顾名思义,了解到这两个词的意思,查准率就是对于所有机器判定为正的里面,有多大的比例是真的正样本,写成公式就是
其中TP,FP分别表示true positive和false positive,即所谓真阳性和假阳性,而对于查全率,顾名思义,就是实际的正样本中,有多大比例被检出了,写成公式就是:
其中TP同前,FN表示false negative,也就是假阴性,(注意在真/假 阴/阳性中,阴阳性是指的分类器的判断结果是阴性还是阳性,而真假指代的是是否和真是答案相符。)
下图来自Wikipedia,形象说明这几个概念:
看完这个图大概就能分清这两个概念了。
举例场景解释和辨析
周老师的翻译虽然很巧妙,但是学界常常还是用准确率和召回率来称呼这两个概念,而且这两个概念的英文本意也是准确和召回,周老师算是意译。那么为了方便记忆和分辨,举一个场景来解释这件事:
假设有一家汽车公司,突然发现某一批次已经卖出去的车是有问题的,于是厂家给出了一种判断方法,告诉所有车主(假设所有车主都不知道自己的车的批次),让大家根据这种方法看一看自己的车子是否有问题,然后把问题车进行召回。但是由于判据过于简单,导致有些正常车的车主也发现自己车子有问题,而相反,也有些问题车的车主以为自己的车正常。这样,工厂召回来的车中,有TP,也有FP,而市面上没有召回的车子中,有TN,也有FN。好,那么现在,工厂希望计算一下,这一批次的问题车中,到底有多少真正被召回,那么就是R = TP/(TP+FN)。这里的FN就是那些未被召回的问题车。所以这个比率自然称为召回率。另外,制定这条判据的技术人员也想知道,这条判据的准确率有多高,那么他们就会计算一下在召回来的这些车里,有多少真的是问题车。所以P = TP/(TP+FP)。
通过以上场景,可以用经验的思维而非数学的定义,顾名(precision和recall)思义地辨析两者的区别和应用方式。
THE END
2018年2月11日00:02:03