准确率(Accuracy) VS 精确率(Precision) VS 召回率(Recall)

382 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

准确率(Accuracy) VS 精确率(Precision) VS 召回率(Recall)

在信息检索中, 准确率通常用于评价结果的质量, 而召回率用来评价结果的完整性

我们的目标是训练一个模型,它可以将这个二维空间中的新数据点分成红色和蓝色两类。

数据有两种状态:测试集数据预测结果数据。对一批测试数据进行预测,结果可以分成四种。

TP(True Positive): 原本是正类,预测结果为正类。(正确预测为正类)
FP(False Positive): 原本是负类,预测结果为正类。(错误预测为正类)
TN(True Negative): 原本是负类,预测结果为负类。(正确预测为负类)
FN(False Negative): 原本是正类,预测结果为负类。(错误预测为负类)

在这里插入图片描述

准确率(Accuracy) 对于给定的测试数据集,分类器正确分类的样本数样本总数之比,就称为准确率,即(TP+TN)/(TP+TN+FP+FN)

精确率(Precision)预测结果为正类的数据中,有多少数据被正确预测(原本就是正类),即TP/(TP+FP)。   对应于检索中的查准率,检索出相关文档数/检索出的文档总数 精确率就是说 在所有预测数据中 的 预测成功率

召回率(Recall)测试集中为正类的数据中,有多少数据被正确预测(预测结果是正类),即TP/(TP+FN)。   对应于检索中的查全率。检索出相关文档数/文档库中相关文档总数 召回率就是说在你所有样本数据

在这里插入图片描述

总结

理论上,数据预测的准确率 和 召回率越接近1,说明预测模型的效果越好。但是实际中也不一定,取决于场景更倾向于哪一种。例如我们去某搜索引擎搜索XX病,一共返回了10条结果,其中5条广告,5条有用的相关信息,那么准确率就是50%,而后台数据库中一共就5条有用的相关信息,召回率却是100%,所以大家就认为这个搜索引擎也能凑合用。

区别精确率和召回率主要记住他们是分母不同就好了, 召回率是对应测试集中的正类数据而言, 而准确率是对应预测结果为正类的数据而言。