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

Scikit learn 分类器报告在skikit learn中告诉我们什么?,scikit-learn,Scikit Learn,我正在使用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.8

我正在使用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分数支持 负0.86 0.69 0.77 351 位置0.82 0.92 0.87 517 平均/总计0.83 0.83 0.83 868 准确度、召回率和f1成绩的含义是什么?从上述数值可以得出什么结论?此外,这些值是否反映了有关我的分类器的任何信息?

回忆反映了给定类中有多少个示例被标记为属于该类。精度反映了被分类器标记为该类的示例的数量是该类的真正示例

假设您有两个类
neg
pos
。如果您现在将所有示例标记为属于
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
的示例多,这意味着您将在稍微倾斜的数据集上进行培训。平衡这些数字还可能导致更平衡的召回

进一步阅读:


这个问题与编程无关。请注意,您可以也可能应该找到并阅读相应的维基百科文章。