您的位置:首页 > 其它

机器学习实战(基于scikit-learn和TensorFlow)学习心得(14)--Precision and Recall and F1

2020-03-10 00:27 239 查看

当我们考验一个classifier的好坏的时候,精准度并不是一个非常好的指标,对于不同的任务我们有两种衡量精准度的办法,precision(精确率)和recall(召回率)
假设我们想要识别一组手写数字中的5

从上图可知
左上角是系统识别出来不是5而且标签也不是5的图片(正确的分类也叫true negative{TN})
右上角是系统识别出来是5但是实际上不是5的图片,叫false positive(FP)
左下角是系统识别出来不是5但实际上是5的图片,叫false negative(FN)
右下角是系统识别出来是5而且实际上也是5的图片,叫true positive(TF)
那么精确度的定义是

精确率的含义是系统识别为正确的所有结果中,真正正确是识别数量有多少个所占的比例,也就是说识别为正的结果中,有的识别对了,有的识别错了,因此会有精确的问题.从实际应用来讲就是淘宝要用的系统,给顾客推荐商品不能太多太烦,最好是每一个推荐的商品都是顾客想要的,这样的话精确率就是100%.

而召回率的定义是

召回率就是在所有的真正正确的样本中,预测对了多少。我们可以理解为,对于一个预测集,我么能将其中正例的多少正确的寻找出来。举例来讲就是警察们抓逃犯的系统的召回率一定要高,不能把罪犯放走,宁肯错杀三千不放过一个,理想情况下我们把所有的罪犯都分析出来来这样的话召回率就是1了

那么这两个指标能不能综合在一起呢?答案是可以的.
F1指标

用上面的这个指标可以综合的看一个系统的准确度到底如何.
但F1指标并不是万能的,在同一个系统和数据的情况下,当我们想增加recall的时候precision就会下降,反之亦然.
这就是precision/recall trade-off.
所以但我们没法改变外部环境的时候我们要做出取舍,我们只能提高precision和recall当中的一项.

  • 点赞
  • 收藏
  • 分享
  • 文章举报
???(??? ?? ???)?? 发布了19 篇原创文章 · 获赞 0 · 访问量 331 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐