为什么我要获得不同的精度,召回和F1得分的不同方法来计算宏观航空



i使用两种方法计算了分类的P,R和F1的宏观平均值。方法1是

print("Macro-Average Precision:", metrics.precision_score(predictions, test_y, average='macro'))
print("Macro-Average Recall:", metrics.recall_score(predictions, test_y, average='macro'))
print("Macro-Average F1:", metrics.f1_score(predictions, test_y, average='macro'))

给出了此结果:

Macro-Average Precision: 0.6822
Macro-Average Recall: 0.7750
Macro-Average F1: 0.7094

方法2是:

print(classification_report(y_true, y_pred))

给出了此结果:

precision    recall  f1-score   support
       0       0.55      0.25      0.34       356
       1       0.92      0.96      0.94      4793
       2       0.85      0.83      0.84      1047
accuracy                           0.90      6196
macro avg       0.78      0.68      0.71      6196
weighted avg       0.89      0.90      0.89      6196

我期望两种方法中的输出相同,因为它们是在同一运行中同时生成的。有人可以解释为什么会发生这种情况,或者是否存在错误?

据我所知,从分类结果_report结果,您有多个类。

如果您检查了指标模块中单个功能的文档,则默认参数将类" 1"视为默认的正类别。

我认为可能发生的事情是,在您的第一个计算中,它是一个与所有计算相比(0和2是负类,而1是正类(。在第二种情况下,您实际上要考虑到真正的多阶级情况。

相关内容

  • 没有找到相关文章

最新更新