为什么平均精度和宏召回率的公式是一样的

问题描述 投票:0回答:1

有一个问题我一直没明白。虽然宏召回率和未调整平衡精度的公式是相同的,但是有两个不同的概念

我使用sklearn的recall_score(test_labels, y_pred,average='macro')和balanced_accuracy_score(y_true, y_pred)并发现它们给出了相同的输出

deep-learning
1个回答
0
投票

您提出的问题是有效的,它围绕着宏观平均召回率(灵敏度)和未经调整的平衡准确性之间的相似性,在某些情况下计算时,这两者似乎会产生相同的结果。

让我们分解一下概念: 宏观平均召回率(recall_score withaverage='macro'):

定义:单独计算每个类别的召回率,然后取平均值。每个班级无论大小,都受到平等对待。 用例:当您想要确保您的模型在所有类别中表现良好,而不管类别不平衡时,这特别有用。

from sklearn.metrics import recall_score
recall_macro = recall_score(test_labels, y_pred, average='macro')

未调整的平衡精度(balanced_accuracy_score):

定义:它旨在通过计算每个类别的敏感度(召回率)平均值来处理类别不平衡,并为每个类别赋予相同的权重。 用例:此指标在处理不平衡数据集时非常有用,其中某些类的样本可能比其他类少得多。

from sklearn.metrics import balanced_accuracy_score
balanced_acc = balanced_accuracy_score(test_labels, y_pred)

在某些情况下,特别是当类别平衡时,这两个指标可能会产生类似的结果。原因是,在平衡数据集中,宏观平均召回率和未调整的平衡准确度在概念上非常接近——它们都旨在对每个类别给予同等的重视。

但是,随着班级分布变得更加不平衡,或者如果不同班级的规模存在显着差异,您可能会开始看到这些指标之间的差异。在这种情况下,宏观平均召回率可能对少数类别的表现更敏感,而未经调整的平衡准确率可确保对每个类别的同等考虑。

© www.soinside.com 2019 - 2024. All rights reserved.