在有监督的多类分类中,为啥使用宏 F1 分数而不是平衡精度?

Posted

技术标签:

【中文标题】在有监督的多类分类中,为啥使用宏 F1 分数而不是平衡精度?【英文标题】:In supervised multiclass classification, why is the macro F1 score used instead of balanced accuracy?在有监督的多类分类中,为什么使用宏 F1 分数而不是平衡精度? 【发布时间】:2016-06-23 00:54:49 【问题描述】:

假设我有一个 3 类问题,并且我想构建一个分类器,该分类器可以基于一组特征来区分这些类。我想根据模型区分 3 个类别的能力来评估模型。

从我的阅读中,听起来宏 F1 分数是用于评估多类问题分类器的常用指标,其中计算每个类的 F1 分数,然后将这些 F1 分数的未加权平均值用作macro F1 score

在其他文献中,我看到了用于多类问题的平衡精度,其中计算每个类的精度,然后将这些精度的未加权平均值用作balanced accuracy

为什么宏观 F1 分数比平衡精度更受青睐?

平衡精度是否更易于解释,因为平衡精度

我们如何以与平衡准确度相同的方式解释 F1 分数 - 什么阈值表明分类器的表现比机会好/差?

【问题讨论】:

您的问题找到答案了吗? 【参考方案1】:

在多类分类中,类不平衡效应更容易扭曲典型的性能指标。一些非常适合类不平衡的性能指标是: - 科恩的卡帕 (https://en.wikipedia.org/wiki/Cohen's_kappa) - 跨类的几何平均值(而不是算术平均值)

两者都可以轻松适应多类分类。

【讨论】:

【参考方案2】:

在我看来,F1 分数是基于精确率和召回率的,可以适用于更多的情况。例如,负样本比正样本少得多。

【讨论】:

平衡准确率还考虑了准确率和召回率。它是所有类别的平均准确率。

以上是关于在有监督的多类分类中,为啥使用宏 F1 分数而不是平衡精度?的主要内容,如果未能解决你的问题,请参考以下文章

多类 CNN 的宏观指标(召回/F1...)

微观VS宏观VS加权F1分数[关闭]

为啥对于 Keras 中的多类分类, binary_crossentropy 比 categorical_crossentropy 更准确?

Scikit-learn 使用朴素贝叶斯进行 10 折交叉验证的多类分类

使用 OpenCV 在多类分类中获取 SVM 分类分数

R中的多类ROC曲线