查看原文
其他

谈谈准确率(P值)、召回率(R值)及F值

2017-04-16 忆臻 机器学习算法与自然语言处理

谈谈准确率(P值)、召回率

(R值)及F值


一直总是听说过这几个词,但是很容易记混,在这里记录一下。希望对大家理解有帮助。

首先来做一个总结:


准确率(P值)是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。


召回率(R值)是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。


用公式表达如下:


上面还是有点抽象,下面通过例子来解释一下上面说法:


1  准确率(P值)


假设我此时想吃香蕉,实验室里面每天都会安排10个水果,水分别是6个香蕉,3个橘子,1个菠萝。哎,但是,实验室主任搞事情啊,为了提高我们吃水果的动力与趣味,将10个水果放在黑盒子中,每个人是看不到自己拿的什么,每次拿5个出来,哎,我去抽了,抽出了2个香蕉,2个橘子,1个菠萝。


下面我们来分别求求P值,R值,F值,哈哈!


按照一开始说的,精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。


这里我们的正样本就是我想吃的香蕉!


在预测结果中,有2个香蕉,总个数是我拿的5个,那么P值计算如下:


2  召回率(R值)


按照开始总结所说。


召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。


我们这里的正类是我想吃的香蕉,而在样本中的香蕉个数是6个,召回率的召回也可以这么理解,代表了原始样本中正类召回了多少。计算如下:



分母已经变成了样本中香蕉的个数啦


3    F值


可能很多人就会问了,有了召回率和准去率这俩个评价指标后,不就非常好了,为什么要有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) | 书影博客


推荐阅读文章:

带你搞懂朴素贝叶斯分类算法

理解朴素贝叶斯算法中的拉普拉斯平滑

一文搞懂k近邻(k-NN)算法(一)

完结篇|一文搞定k近邻算法(k-NN)算法(二)

近期文章预告:

《深入浅出讲解支持向量机(SVM)》



版权所有,转载请联系作者获得授权!



开通了[自然语言处理与机器学习]公众号,记录自己在cs,ml,nlp中的学习所得,不保证是很难得知识,但一定是我理解的干货,欢迎按住下面二维码扫描关注!






您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存