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

Posted

技术标签:

【中文标题】微观VS宏观VS加权F1分数[关闭]【英文标题】:Micro VS Macro VS Weighted F1 Score [closed] 【发布时间】:2021-06-22 12:01:23 【问题描述】:

我有一个不平衡的多分类数据集。 我计算了微 F1、宏 F1 和加权 F1。 在预测不平衡数据集的整体性能时,我认为 Macro 是最好的。 但是,有人说如果要查看整体性能,请使用 Micro,而另一些人则说 Micro 仅在数据集不平衡时查看。

    为什么在不平衡的数据集中使用 Micro? 什么时候使用微、宏和加权? 或者说,这些手段是在什么情况下使用的?

【问题讨论】:

我投票结束这个问题,因为它与 help center 中定义的编程无关,而是关于 ML 理论和/或方法 - 请参阅 ***.com/tags/machine-learning/info 中的介绍和注意事项跨度> 【参考方案1】:

首先看到这个answer

不平衡的数据始终是一个需要处理的大问题。这是不平衡数据示例的二元分类。总体准确度看起来不错,但是当您查看单个分数时,您会发现这是一个很大的失败!对于这种数据,我总是在得出结果之前检查次要班级的分数。您可以考虑在此类数据中进行数据扩充。有很好的库来处理不平衡的数据。这是 Python 中 library to deal with imbalanced data 的一个很好的例子。

最后,Micro avg 使用个人真假阳性也假阴性。 Micro avg 只是 presicion + recall 的平均值,不考虑数据中类的比例。所以微平均能更好地反映不平衡数据的准确性。

注意:

这里是sklearn网站的解释:

“微”:通过计算真阳性、假阴性和假阳性的总数来全局计算指标。

'macro':计算每个标签的指标,并找到它们的未加权平均值。这没有考虑标签不平衡。

如果你看一下宏,它会说:这没有考虑标签不平衡。如果你有不平衡的数据,最好使用微观。 Source

#Confusion Matrix:
 [[3808    0]
 [ 182    2]]
              precision    recall  f1-score   support

           0       0.95      1.00      0.98      3808
           1       1.00      0.01      0.02       184

    accuracy                           0.95      3992
   macro avg       0.98      0.51      0.50      3992
weighted avg       0.96      0.95      0.93      3992

【讨论】:

Macro avg 不能更好地反映不平衡数据吗?因为,Macro avg 计算 F1 的平均值。所以我认为 Macro avg 显示了整体性能。但我不确定。如果我错了,请告诉我。 我编辑了答案,请看注释部分。 你知道什么时候使用加权?

以上是关于微观VS宏观VS加权F1分数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sklearn.metrics 计算多标签分类任务的微观/宏观度量?

F1 分数 vs ROC AUC

scikit加权f1分数计算及使用

VS Code 使用技巧

[高项]项目管理VS项目治理

VS Code快捷键