Cod*_*eek 16 python metrics machine-learning python-3.x scikit-learn
在 sklearn.metrics.f1_score 中,f1 分数有一个名为“average”的参数。宏观、微观、加权和样本是什么意思?请详细说明,因为在文档中,没有正确解释。或者简单地回答以下问题:
sen*_*nce 35
问题是关于 中average参数的含义sklearn.metrics.f1_score。
从代码中可以看出:
average=micro 表示通过考虑总真阳性、假阴性和假阳性来计算 f1 的函数(无论数据集中每个标签的预测如何)average=macro 表示为每个标签计算 f1 的函数,并返回平均值而不考虑数据集中每个标签的比例。average=weighted 表示为每个标签计算 f1 的函数,并返回考虑到数据集中每个标签的比例的平均值。average=samples表示为每个实例计算 f1 的函数,并返回平均值。将其用于多标签分类。小智 7
我发现一篇非常有用的文章,更彻底地解释了这些差异并举例说明:https://towardsdatascience.com/multi-class-metrics-made-simple-part-ii-the-f1-score-ebe8b2c2ca1
不幸的是,它没有解决“样本”参数,而且我还没有尝试过多标签分类,所以我无法回答第一个问题。至于其他问题:
这些信息从哪里来?如果我正确地理解了这些差异,那么微观并不是不平衡数据集的最佳指标,而是最糟糕的指标之一,因为它不包括比例。正如文章中所述,micro-f1 等于准确性,这是不平衡数据的一个有缺陷的指标。例如:分类器要在数千张随机图片中识别猫图片,只有 1% 的数据集包含猫图片(不平衡数据集)。即使它没有识别出单张猫的图片,它的准确度/微 f1 分数也达到 99%,因为 99% 的数据被正确识别为不是猫的图片。
简而言之:宏观只是各个分数的算术平均值,而加权则包括各个样本量。我推荐这篇文章了解详细信息,如果需要,我可以提供更多示例。
我知道这个问题很老了,但我希望这对某人有帮助。如果我错了,请纠正我。我做了一些研究,但不是专家。