纠正下,精确率(precision)和准确率(accuracy)是不一样的,题主问的应该是精确率与召回率之间的差别。
一.定义辨析
刚开始接触这两个概念的时候总搞混,时间一长就记不清了。
实际上非常简单,精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),也就是
P = \frac{TP}{TP+FP}
而召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。
R = \frac{TP}{TP+FN}
其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。
在信息检索领域,精确率和召回率又被称为查准率和查全率,
查准率=检索出的相关信息量 / 检索出的信息总量
查全率=检索出的相关信息量 / 系统中的相关信息总量
二.举个栗子
假设我们手上有60个正样本,40个负样本,我们要找出所有的正样本,系统查找出50个,其中只有40个是真正的正样本,计算上述各指标。
- TP: 将正类预测为正类数 40
- FN: 将正类预测为负类数 20
- FP: 将负类预测为正类数 10
- TN: 将负类预测为负类数 30
准确率(accuracy) = 预测对的/所有 = (TP+TN)/(TP+FN+FP+TN) = 70%
精确率(precision) = TP/(TP+FP) = 80%
召回率(recall) = TP/(TP+FN) = 2/3
除此之外,还有ROC曲线,PR曲线,AUC等评价指标,可以参见我的博客:
机器学习性能评估指标
这篇文章讲的挺简单的,很容易理解,链接:
推荐系统评测指标准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。
一般来说,Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。
正确率、召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价指标。不妨看看这些指标的定义先:
1. 正确率 = 提取出的正确信息条数 / 提取出的信息条数
2. 召回率 = 提取出的正确信息条数 / 样本中的信息条数
两者取值在0和1之间,数值越接近1,查准率或查全率就越高。
3. F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率) (F 值即为正确率和召回率的调和平均值)
不妨举这样一个例子:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:
正确率 = 700 / (700 + 200 + 100) = 70%
召回率 = 700 / 1400 = 50%
F值 = 70% * 50% * 2 / (70% + 50%) = 58.3%
不妨看看如果把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:
正确率 = 1400 / (1400 + 300 + 300) = 70%
召回率 = 1400 / 1400 = 100%
F值 = 70% * 100% * 2 / (70% + 100%) = 82.35%
由此可见,正确率是评估捕获的成果中目标成果所占得比例;召回率,顾名思义,就是从关注领域中,召回目标类别的比例;而F值,则是综合这二者指标的评估指标,用于综合反映整体的指标。
当然希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。比如极端情况下,我们只搜索出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高。如果是做实验研究,可以绘制Precision-Recall曲线来帮助分析。
推荐系统中的召回率与准确率
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
欢迎关注本人:
推荐系统公众号:Tiany_RecoSystem
知乎主页://www.zhihu.com/people/shen-xiao-ming-77
准确率,顾名思义,就是准确程度。通过正确数/总数得到。而正确数是什么,总数是什么呢?
召回率,我们可以理解为找到的数目与总的需要我们找到的数目的比,那在推荐系统中,什么是找到的数目,什么是需要我们总的找到的数目呢?
令R(u)表示在根据训练数据给用户做出的推荐列表,T(u)表示用户根据测试数据给用户做出的推荐列表,则
召回率:
准确率:
精确率是针对我们 预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本,例如我们给用户推荐了100条新闻,其中10条用户产生了点击,那么准确率为10/100 = 0.1
而 召回率是针对我们 原来的样本而言的,它表示的是样本中的正例有多少被预测正确了, 例如我们给用户推荐了100条新闻,其中10条用户产生了点击,而用户最终在平台上总共点击了200条新闻,那么召回率为10 / 200 = 0.05, 表示的是推荐系统推荐的那些符合用户兴趣并产生点击的新闻量占了用户实际总共点击的新闻 有多少比例
其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。但分子都是表示预测的正样本与原来正样本的交集。
在信息检索领域,精确率和召回率又被称为 查准率 和 查全率 ,
查准率 =检索出的相关信息量 / 检索出的信息总量
查全率 =检索出的相关信息量 / 系统中的相关信息总量
那年聪聪
精确率—查准率——precision:你认为的该类样本,有多少猜对了(猜的准确率如何)
召回率—查全率—recall:该类样本有多少被找出来(召回了多少);
准确率—accuracy:正类和负类预测准确的比例。
首先明确一下几个表示:
-True
Positive(真正, TP):将正类预测为正类数.
-True Negative(真负, TN):将负类预测为负类数.
-False Positive(假正, FP):将负类预测为正类数 →→ 误报 (Type I error).
-False Negative(假负, FN):将正类预测为负类数 →→ 漏报 (Type II error).
精确率:precision = TP / (TP + FP)
召回率:recall = TP / (TP + FN)
准确率:accuracy = (TP + TN) / (TP+ FP + TN + FN)
F1 Score:F1 Score = P*R/2(P+R),其中P和R分别为 precision 和
recall
精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。
例子:假设我们手上有60个正样本,40个负样本,我们要找出所有的正样本,系统查找出50个,其中只有40个是真正的正样本,计算上述各指标。
TP: 将正类预测为正类数 40
FN: 将正类预测为负类数 20
FP: 将负类预测为正类数 10
TN: 将负类预测为负类数 30
准确率(accuracy) = 预测对的/所有 = (TP+TN)/(TP+FN+FP+TN) = 70% 精确率(precision) = TP/(TP+FP) = 80% 召回率(recall) = TP/(TP+FN) = 2/3参考:(已修改原文中错误)准确率(accuracy)、精确率(precision)、召回率(recall)_Cheese_pop的博客-CSDN博客_精确率和召回率公式