【机器学习】为什么要使用F1衡量分类器的性能

来源:互联网 发布:天下游是什么软件 编辑:程序博客网 时间:2024/05/22 13:56

https://discussions.youdaxue.com/t/f1/4638/6?u=beibei19890724    原文链接


http://blog.csdn.net/duxinyuhi/article/details/52142721 查全率和查准率参考另一篇文章

为什么要使用F1衡量分类器的性能

查准率(Precision)与查全率(Recall)

以信息检索为例说明,总共50篇文献,其中20篇文献是我感兴趣的目标文献,输入特定检索条件返回10篇文献,其中5篇是我要的文献。

查准率(Precision) = 查出的文章中有多少是正确目标 = 5/10

查全率(Recall) = 总共正确的文章中有多少被正确查出 = 5/20

两种值都是我们想要尽量提高的,但不可能两全其美:想要查准率为1,最好的结果就是一篇文献也没搜到,返回的结果肯定没有分类错误,但这样也没有意义;想要查全率为1,最好的情况就是50篇皆返回,这样搜索本身也失去了意义。

F1作为单独的性能指标

我们将F1定义为查准率与查全率的调和平均数。

即 $$ 1/F1 = (1/Precison + 1/Recall) * 1/2 $$

这样可以避免出现查全率或查准率为1而另一端为0的极端情况出现。

还可以根据对查准率/查全率的不同偏好设置两者的比率\Beta

比如对癌症的诊断,可能更关心查全率,则\beta设置大于1。

$$ 1/F_\beta = 1/(1+\beta^2) * (1/Precision + \beta^2/Recall) $$



感谢@mrbean和另一位助教(抱歉没听清ID)的解答

  • F1 score
  • Shortcomings of Accuracy 中的第二点和第三点不是很明白
  • p1版块精华帖
  • 创建时间

    7月10日
  • 最后回复

    7月19日
  • 5

    回复

  • 171

    浏览

  • 4

    用户

  • 5

  • 4

    链接

图
源自 quora4
附上一张图。也就是 当时@walker 所提出的。

补充一下。

还有一种情况是返回20篇,20篇都是对的。这种情况下Precision和Recall也都为1。但这个1与前面的1不同,这个1是最有意义的,也是我们追求的。

nirvanafish:

想要查准率为1,最好的结果就是一篇文献也没搜到

因为查准率是 1 - 查错率,这里查错率为零。

nirvanafish:

可以避免出现查全率或查准率为1而另一端为0的极端情况出现

为什么这个公式可以避免?举个例子好吗?

F1公式取调和平均值,举例说明:如果一端查全率为0.1(除数不能为0),一端查准率为1,代入F1的公式,F1取值2/11,远小于查准率的1,也就是说0.1极大地降低了该模型的性能指数,小值将大值的影响降低,从而得到合理的性能估计。

weiwenjie:
nirvanafish:

可以避免出现查全率或查准率为1而另一端为0的极端情况出现

为什么这个公式可以避免?举个例子好吗?

0 0