首页 > 解决方案 > 为什么 sklearns 分类报告的“加权”平均 F1 分数与公式计算的 F1 分数不同?

问题描述

我尝试使用 sklearns 分类报告计算“加权”f1 分数,它似乎与使用F1 = 2*((p*r)/(p+r)). 例如:

查看此处找到的示例查看加权平均线:

                precision    recall  f1-score   support
weighted avg       0.70      0.60      0.61         5

当计算出来时,我得到:0.646153846 = 2*((0.70*0.60)/(0.70+0.60))这与0.61. 为什么是这样?这个 f1 分数是如何计算的?

标签: pythonscikit-learn

解决方案


F1 分数,即二元分类模型中正类的 F1 分数。这计算为F1 = 2*((p*r)/(p+r)

加权 F1 分数是一种特殊情况,我们不仅报告正类的分数,还报告负类的分数。这在我们有不平衡类的情况下很重要。因为即使我们的模型一直都预测为阳性,简单的 F1 分数也给出了很好的值。

所以加权平均值也考虑了这两个类的样本数,不能用你上面提到的公式计算。

希望能帮助到你。


推荐阅读