谈谈准确率(P值)、召回率(R值)及F值
谈谈准确率(P值)、召回率
(R值)及F值
一直总是听说过这几个词,但是很容易记混,在这里记录一下。希望对大家理解有帮助。
首先来做一个总结:
准确率(P值)是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。
召回率(R值)是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。
用公式表达如下:
上面还是有点抽象,下面通过例子来解释一下上面说法:
假设我此时想吃香蕉,实验室里面每天都会安排10个水果,水分别是6个香蕉,3个橘子,1个菠萝。哎,但是,实验室主任搞事情啊,为了提高我们吃水果的动力与趣味,将10个水果放在黑盒子中,每个人是看不到自己拿的什么,每次拿5个出来,哎,我去抽了,抽出了2个香蕉,2个橘子,1个菠萝。
下面我们来分别求求P值,R值,F值,哈哈!
按照一开始说的,精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。
这里我们的正样本就是我想吃的香蕉!
在预测结果中,有2个香蕉,总个数是我拿的5个,那么P值计算如下:
按照开始总结所说。
召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。
我们这里的正类是我想吃的香蕉,而在样本中的香蕉个数是6个,召回率的召回也可以这么理解,代表了原始样本中正类召回了多少。计算如下:
分母已经变成了样本中香蕉的个数啦
可能很多人就会问了,有了召回率和准去率这俩个评价指标后,不就非常好了,为什么要有F值这个评价量的存在呢?
按照高中语文老师所说的,存在即合理的说法,既然F值存在了,那么一定有它存在的必要性,哈哈哈哈!
我们在评价的时候,当然是希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。
比如极端情况下,在我们这个例子中,我们只搜索出了一个结果,且是香蕉,那么Precision就是100%,但是Recall为1/6就很低;而如果我们抽取10个水果,那么比如Recall是100%,但是Precision为6/10,相对来说就会比较低。
因此P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure,通过计算F值来评价一个指标!
我这里给出最常见的F1计算方法,如下:
那么在我们这个例子中F1 = (2*2/5*2/6)/(2/5+2/6)
(这里我就不算出来了,有这个形式,更加能体现公式特点!)
希望对大家理解有所帮助~
参考:
推荐系统评测指标-准确率(Precision)、召回率(Recall)、F值(F-Measure) | 书影博客
推荐阅读文章:
近期文章预告:
《深入浅出讲解支持向量机(SVM)》
开通了[自然语言处理与机器学习]公众号,记录自己在cs,ml,nlp中的学习所得,不保证是很难得知识,但一定是我理解的干货,欢迎按住下面二维码扫描关注!