Macro VS Micro VS Weighted VS Samples F1 分数

Macro VS Micro VS Weighted VS Samples F1 Score

在sklearn.metrics.f1_score中,f1分数有一个参数叫"average"。宏观、微观、加权和样本是什么意思?请详细说明,因为在文档中,它没有正确解释。或者简单地回答以下问题:

  1. 为什么 "samples" 是多标签分类的最佳参数?
  2. 为什么微处理器最适合不平衡的数据集?
  3. 加权和宏有什么区别?

问题是sklearn.metrics.f1_scoreaverage参数的含义。

code可以看出:

  • average=micro 表示通过考虑总真阳性、假阴性和假阳性(无论数据集中每个标签的预测如何)来计算 f1 的函数
  • average=macro 表示为每个标签计算 f1 的函数,returns 不考虑数据集中每个标签的比例的平均值。
  • average=weighted 表示为每个标签计算 f1 的函数,returns 考虑数据集中每个标签的比例的平均值。
  • average=samples 表示为每个实例计算 f1 的函数,returns 表示平均值。将其用于多标签分类。

我找到了一篇非常有用的文章,通过示例更彻底地解释了差异:https://towardsdatascience.com/multi-class-metrics-made-simple-part-ii-the-f1-score-ebe8b2c2ca1

不幸的是,它没有解决 'samples' 参数,而且我还没有尝试多标签分类,所以我无法回答问题 1。至于其他:

  1. 这些信息从何而来?如果我正确理解了这些差异,微观并不是不平衡数据集的最佳指标,而是最差的指标之一,因为它不包括比例。如文章中所述,micro-f1 等于准确性,这是不平衡数据的有缺陷的指标。 例如:分类器要在数千张随机图片中识别猫图片,但只有 1% 的数据集由猫图片组成(不平衡数据集)。即使它没有识别出一张猫图片,它的准确率/micro-f1-score 也达到了 99%,因为 99% 的数据都被正确识别为不是猫的图片。

  2. 简而言之:宏观就是个体分数的算术平均数,而加权包括个体样本量。我推荐这篇文章以获得详细信息,如果需要我可以提供更多示例。

我知道这个问题很老了,但我希望这对某人有所帮助。 如果我错了,请纠正我。我做了一些研究,但不是专家。