作者:忆臻
链接:https://www.zhihu.com/question/19645541/answer/157623181
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。
召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。
用公式表达如下:
上面还是有点抽象,下面通过例子来解释一下上面说法:
假设我此时想吃香蕉,实验室里面每天都会安排10个水果,水果种类分别是6个香蕉,3个橘子,1个菠萝。哎,但是,实验室主任搞事情啊,为了提高我们吃水果的动力与趣味,告诉我们10个水果放在黑盒子中,每个人是看不到自己拿的什么,每次拿5个出来,哎,我去抽了,抽出了2个香蕉,2个橘子,1个菠萝。
下面我们来分别求求P值,R值,F值,哈哈!
按照一开始说的,精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。
这里我们的正样本就是我想吃的香蕉!
在预测结果中,有2个香蕉,总个数是我拿的5个,那么P值计算如下:
P = 2/5
按照开始总结所说。
召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。
我们这里的正类是我想吃的香蕉,而在样本中的香蕉个数是6个,召回率的召回也可以这么理解,代表了,原始样本中正类召回了多少。R值计算如下:
R = 2/6
分母已经变成了样本中香蕉的个数啦
可能很多人就会问了,有了召回率和准去率这俩个评价指标后,不就非常好了,为什么要有F值这个评价量的存在呢?
按照高中语文老师所说的,存在即合理的说法,既然F值存在了,那么一定有它存在的必要性,哈哈哈哈!
我们在评价的时候,当然是希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。
比如极端情况下,在我们这个例子中,我们只搜索出了一个结果,且是香蕉,那么Precision就是100%,但是Recall为1/6就很低;而如果我们抽取10个水果,那么比如Recall是100%,但是Precision为6/10,相对来说就会比较低。
因此P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure,通过计算F值来评价一个指标!
我这里给出最常见的F1计算方法,如下:
F1 = (2*P*R)/(P+R)
F那么在我们这个例子中F1 = (2*2/5*2/6)/(2/5+2/6)(这里我就不算出来了,有这个形式,更加能体现公式特点!)
另外一个例子
假设你的女票在过去10年(还没修成正果?)里,每年都会送一份生日礼物给你,有一天,她突然问你:
“记得这十年里你生日我都送过什么吗?”
这不是一个简单的问题,或者说这不是一个问题,这就是一颗雷
为了续命,你随即对自己的大脑进行了地毯式搜索,
这时,召回率(Recall)就等于你回答正确的礼物数和你女票在你生日时送你的礼物数的总和的比值:
比如,你准确地回答出10件礼物,那么召回率就为:10/10即100%
如果只准确地回忆起了7件,那么召回率(Recall)就是70%
但是,你所有的回答中可能有错误回答,比如,你一共给出了15个答案,其中5个是错的,这证明,你虽然可以回答出所有礼物,但是却不那么精确,因此,精确率这个概念便出现了:
精确率(Precision)就是10/15,约为67%