首页 文章

分类器报告在skikit-learn中告诉我们什么?

提问于
浏览
2

我正在使用skikit-learn进行文本分类 . 当我使用classification_report()函数时,它返回了下表:

precision  recall   f1-score   support

        neg       0.86      0.69      0.77       351
        pos       0.82      0.92      0.87       517

avg / total       0.83      0.83      0.83       868

精确,召回和f1分数的含义是什么?从上述值可以得出什么结论?此外,这些值是否反映了我的分类器的任何内容?

1 回答

  • 2

    Recall反映了给定类的多少个例子被标记为属于该类 . 精确度反映了分类器标记为该类的实例数是该类的实例 .

    假设你有两个类 negpos . 如果您现在将所有示例标记为类 neg ,那么您对 neg 的回忆将会很好,为1.00或100%,因为每当一个示例为 neg 类时,您将其标记为 neg . 同时召回 pos 将是可怕的,因为没有一个类 pos 被标记为 pos . 另外, neg 的精度会很差,因为很多标记为 neg 的例子都是 pos .

    相反,只有当您完全确定它们属于类 neg 时,您才可以给出标签 neg . 那么你很可能回忆 neg 会很可怕,因为你几乎没有抓到任何一个例子 . 但是你的精确度会很高,因为(几乎)所有被标记为 neg 的例子都是 neg 类 .

    因此:将所有内容标记为A类将导致A类的高召回率,但精度不高 . 几乎没有任何标记为A类标记通常会导致低调用,但A类高精度 .

    同时列出的F1-Score只是召回和精确度的合并 . 如果你的F1得分很高,那么回忆和精确度往往都很好 . 如果它很低那么你的召回和精确度往往很差 .

    根据您的示例值,您可以推导出您的分类器表现通常不会太差,F1分数为0.83 . neg 的召回与其他值相比有点低,因此您的分类器在查找 neg 的示例时会出现问题,而是将其标记为 pos (这会降低 pos 的精度) . 如果这些是您的培训结果而不是测试集,那么支持值的差异表明您有更多 pos 的示例而不是 neg ,这意味着您将接受稍微偏斜的数据集培训 . balancer 这些数字也可以使召回更加 balancer .

    进一步阅读:

相关问题