【问题标题】:F1 score computation when target labels contain only a subset of the allowed labels目标标签仅包含允许标签的子集时的 F1 分数计算
【发布时间】:2021-10-17 22:03:18
【问题描述】:

我有一个 3 类分类问题。
我的预测标签包含所有三个类别。
但是,我的目标标签只有三个类别中的两个。
例如:

predicted = [1,1,2,3,2,1]
target = [1,1,2,2,2,1]

在这种情况下,我应该如何计算 F1 分数?
我目前正在使用sklearnf1_score 函数和macro 平均值。
但这会导致上述情况的 F1 得分值较低。

【问题讨论】:

    标签: machine-learning scikit-learn classification multiclass-classification


    【解决方案1】:

    f1_score 提供了一个名为 labels 的参数,让您可以定义一组标签以包含在average != 'binary' 的情况下。

    例如,如果您只对 12 类的分类器性能感兴趣,您可以这样做:

    from sklearn.metrics import f1_score
    
    
    predicted = [1, 1, 2, 3, 2, 1]
    target = [1, 1, 2, 2, 2, 1]
    
    print(f1_score(target, predicted, average='macro', labels=[1, 2]))
    # 0.9
    

    【讨论】:

      猜你喜欢
      • 2018-03-25
      • 2017-01-31
      • 2020-02-22
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      • 2016-08-05
      • 2020-10-02
      • 2021-05-09
      相关资源
      最近更新 更多