sklearn分类报告中的数字是什么意思?


29

下面是从sklearn的sklearn.metrics.classification_report文档中提取的示例。

我不明白的是,为什么我认为班级是预测变量的标签,为什么每个班级都有f1-得分,精度和召回率值?我认为f1分数可以告诉您模型的整体准确性。另外,支持专栏告诉我们什么?我找不到任何相关信息。

print(classification_report(y_true, y_pred, target_names=target_names))
             precision    recall  f1-score   support

    class 0       0.50      1.00      0.67         1
    class 1       0.00      0.00      0.00         1
    class 2       1.00      0.67      0.80         3

avg / total       0.70      0.60      0.61         5

Answers:


21

f1分数为您提供精确度和查全率的谐波平均值。与每个其他类别相对应的分数将告诉您分类器对特定类别中的数据点进行分类的准确性。

支持是该类中真实响应的样本数。

您可以在sklearn文档中找到有关这两种措施的文档。

支持-http: //scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html

F1得分-http: //scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

编辑

最后一行给出了精度,召回率和f1得分的加权平均值,其中权重是支持值。因此,为了精确度,平均值为(0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70。总数仅用于支持总数,此处为5。


1
最后一行avg / total呢?它似乎与列的含义不匹配...如何计算以及它的含义是什么?
Antoine

@Antoine我也想知道。您知道如何计算吗?
苍白的蓝色圆点,

@Antoine最后一行给出了精度,召回率和f1分数的加权平均值,其中权重是支持值。因此,为了精确度,平均值为(0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70。总数仅用于支持总数,此处为5。
Nitin

感谢@Nitin的先前回答,我通过链接发现了数学背后的最佳视觉描述和直觉:en.wikipedia.org/wiki/Precision_and_recall en.wikipedia.org/wiki/F1_score
Bogdan Korecki
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.