分类器报告告诉我们在skikit中学到了什么



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

精准召回f1分数支持负0.86 0.69 0.77 351位置0.82 0.92 0.87 517avg/total 0.83 0.83 0.83868

准确度、召回率和f1分数的含义是什么?从以上数值可以得出什么结论?此外,这些值是否反映了我的分类器?

Recall反映了给定类的多少示例被标记为属于该类Precision反映了有多少被分类器标记为该类的示例才是该类的真正示例。

假设您有两个类negpos。如果您现在将所有示例标记为neg类,那么您对neg的回忆将非常好,为1.00或100%,因为无论何时示例属于neg类,您都将其标记为neg。同时,对pos的调用将是可怕的,因为没有一个类别pos的示例被标记为pos。此外,你对neg的精度会很差,因为很多被标记为neg的例子实际上是pos

相反,只有当你绝对确定它们属于类neg时,你才能给出标签neg的例子。那么,你对neg的回忆很可能会很糟糕,因为你几乎看不到任何neg的例子。然而,您的精度将非常高,因为(几乎)所有标记为neg的示例都属于neg类。

所以:把所有东西都标记为A类会导致A类的高召回率,但精度很差。将几乎没有的东西标记为A类通常会导致低召回率,但A类的精度很高

同样列出的F1分数只是召回率和精确度的合并。如果你的F1成绩很高,那么通常召回率和准确性都很好。如果它很低,那么你的记忆力和准确性往往会很差。

从您的示例值中,您可以得出分类器的性能通常不会太差,F1分数为0.83。与其他值相比,neg的召回率有点低,因此您的分类器在发现neg的示例时存在问题,并将其标记为pos(这会降低pos的精度)。如果这些是训练的结果,而不是测试集,那么支持值的差异表明pos的示例比neg的示例多,这意味着你将在稍微倾斜的数据集上进行训练。平衡这些数字也可能导致更平衡的召回。

进一步阅读:

  • 维基百科关于召回和精确性
  • 斯坦福大学回忆与精确性综述
  • 函数sklearn.metrics.precision_recall_fscore_support的scikit文档

相关内容

  • 没有找到相关文章

最新更新