scikit-learn 分类报告的 f1 准确率?

数据挖掘 分类 公制 f1score
2022-02-26 14:23:54

classification_report()当我在我的 2-classy和上运行 scikit-learn时yhat,我得到以下信息:

              precision    recall  f1-score   support

           0       0.84      0.97      0.90    160319
           1       0.67      0.27      0.38     41010

    accuracy                           0.82    201329   <--- WHAT?
   macro avg       0.75      0.62      0.64    201329
weighted avg       0.80      0.82      0.79    201329

我了解F1,宏观平均F1等。但是列accuracy下0.82的值是f1-score多少?

我已经阅读了有关此功能的其他问题:

如何解读 scikit-learn 的分类报告?

Sklearn 分类报告未打印多类分类模型的微平均分数

分类报告中的宏观平均和加权平均含义

1个回答

我告诉你这是一种显示数据的奇怪方式,但准确性是唯一不适合模式的字段。例如:

              precision    recall  f1-score   support

           0       0.84      0.97      0.90    160319
           1       0.67      0.27      0.38     41010

如何解释 scikit-learn 的分类报告中所述?,准确率、召回率、f1-score 和支持率只是您的二元分类问题的两个类别的指标。

表的第二部分:

    accuracy                           0.82    201329   <--- WHAT?
   macro avg       0.75      0.62      0.64    201329
weighted avg       0.80      0.82      0.79    201329

准确度是模型的整体准确度(请注意,准确度不是相对于某个类的度量,而是跨所有类的性能)。准确率和召回率的宏观平均值只是这两个类别的调和平均值。IE:

recall macro avg = (recall_class_1 + recall_class_0) / 2

加权平均值只是由支持/样本大小加权的两个类别的平均指标。IE:

recall weighted avg = (support_class_0 * recall_class_0 + support_class_1 * recall_class_1) / (support_class_0 + support_class_1)

这是一种相当冗长的说法,即准确度就是整体准确度。它与它恰好位于的 f1-score 列无关。