在sklearn.metrics.f1_score中,f1分数具有一个称为“平均值”的参数。宏观,微观,加权和样本是什么意思?请详细说明,因为在文档中未正确解释。或直接回答以下问题:
答案 0 :(得分:2)
我发现了一篇非常有用的文章,更详尽地解释了这些差异并附有示例:https://towardsdatascience.com/multi-class-metrics-made-simple-part-ii-the-f1-score-ebe8b2c2ca1
不幸的是,它没有解决“样本”参数,而且我还没有尝试多标签分类,所以我无法回答问题 1。至于其他:
这些信息从何而来?如果我正确理解了这些差异,那么微观不是不平衡数据集的最佳指标,而是最糟糕的指标之一,因为它不包括比例。如文章所述,micro-f1 等于准确度,这是不平衡数据的一个有缺陷的指标。 例如:分类器应该在数千张随机图片中识别猫图片,只有 1% 的数据集由猫图片组成(不平衡数据集)。即使它没有识别出一张猫图片,它的准确率 / micro-f1-score 也达到了 99%,因为 99% 的数据被正确识别为不是猫图片。
简而言之:宏观只是单个分数的算术平均值,而加权包括单个样本大小。我推荐这篇文章以获得详细信息,如果需要,我可以提供更多示例。
我知道这个问题已经很老了,但我希望这对某人有所帮助。 如果我错了,请纠正我。我做了一些研究,但不是专家。
答案 1 :(得分:0)
问题与sklearn.metrics.f1_score
中average
参数的含义有关。
从code中可以看到:
average=micro
表示通过考虑总的真实阳性,假阴性和假阳性(与数据集中每个标签的预测无关)来计算f1的函数average=macro
表示用于为每个标签计算f1的函数,并返回平均值而不考虑数据集中每个标签的比例。average=weighted
表示用于为每个标签计算f1的函数,并考虑数据集中每个标签的比例返回平均值。average=samples
表示用于为每个实例计算f1并返回平均值的函数。使用它进行多标签分类。