美文网首页
精确率和召回率(Python)

精确率和召回率(Python)

作者: 学人工智能的菜菜 | 来源:发表于2020-04-27 00:16 被阅读0次

    继之前讲的贝叶斯实现垃圾邮件分类模型,那么如何评判该模型是好还是坏呢?
    对于二分类问题,采用二分问题进行解析,如下图所示:
    假如有20个正常邮件,其中四个被分为垃圾邮件,五个垃圾邮件,其中三个被分为正常邮件。
    画出二分类的关系图如下图所示:


    image.png

    如何衡量这个分类器的好坏呢?有几个标准。

    1、准确率

    准确率accuary = 正确的/总的 = 16+3/16+4+2+3 = (TP+TN)/(TP+FP+FN+TN)
    这个方法只能计算正样本和负样本比较平衡的情况下效果较好,如果正负样本分布很不平衡,就结果不可靠。
    比如我有995个正样本,只有5个负样本,如果全部猜对是正样本的话,概率还是有99.5%的。所以这样子就无法估算该模型是否可靠了。
    那么是否还有其他的评判标准呢,有的,就是下面的精确率和召回率

    2、精确率和召回率

    • 精确率计算方式是
      P = TP/(TP+FP) 就是计算预测的有多少是被预测准确的
      R = TP/(TP+FN) 计算计算总的正样本,有多少被预测对的,多少被召回了。
      加入计算邮件分类的P和R结果看看这两个如何判别模型的。
      P正 = 16/18
      R正 = 16/20
      负样本的求法是雷同
      P负 = 3/7
      R负 = 3/5
      由计算公式可知,如果提高精确率,召回率就要降低,所以召回率和精确率是互斥的。水火不容。但是这两个都很重要,那怎么办呢?是否可以结合两者来呢?当然可以的,就是当年高中学物理一样,两个并联的电池如何计算的,就是通过并联实现,可以根据并联计算电阻的原理来求这两个并联后的值。
      那么就引入了F1_score的概念。F1_score就是P和R并联的结果,然后求平均值,得到的就是他们的平均值,可以一起评判模型的好坏。
      F1 = (1/P+1/R)/2 = 2PR/P+R

    相关文章

      网友评论

          本文标题:精确率和召回率(Python)

          本文链接:https://www.haomeiwen.com/subject/dcxewhtx.html