Fork me on GitHub

准确率、召回率与F1值

“什么是准确率和召回率?”
“什么是查准率和查全率?”

机器学习常见面试题之一,本文将对上述问题进行解答。

问题

下面有关分类算法的准确率,召回率,F1 值的描述,错误的是?
A.准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率
B.召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率
C.正确率、召回率和 F 值取值都在0和1之间,数值越接近0,查准率或查全率就越高
D.为了解决准确率和召回率冲突问题,引入了F1分数

正确答案将在本文最后揭晓。

TP——将正类预测为正类数
FN——将正类预测为负类数
FP——将负类预测为正类数
TN——将负类预测为负类数

准确率(Precision)

P = TP/(TP+FP)
反映了被分类器判定的正例中真正的正例样本的比重。

准确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)。

召回率(Recall):

R = TP/(TP+FN)= 1-[FN/(TP+FN)]
反映了被正确判定的正例占总的正例的比重。

而召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。

所有正例中被分对的比例,衡量了分类器对正例的识别能力。

准确率和召回率,两者取值在0和1之间,数值越接近1,查准率或查全率就越高。

F1值

F1 = 2(Recall Precision)/(Recall + Precision)

精准率和召回率和F1取值都在0和1之间,精准率和召回率高,F1值也会高,不存在数值越接近0越高的说法,应该是数值越接近1越高。

总结

一句话概括:精确率Precision是预测的正例里有多少是预测正确的,召回率Recall是真正的正例里有多少预测正确的。

精确是预测,召回是原本

所以开始的问题的正确答案为“C”,三者都是越接近于1越好。

参考资料

------ 本文结束感谢您的阅读 ------
坚持原创技术分享,您的支持将鼓励我继续创作!