当模型不预测一个类时,多类分类中未定义的F1分数

时间:2017-07-21 08:50:01

标签: matlab precision-recall multiprecision multiclass-classification

我试图在多类分类中使用F1分数进行模型选择。

我正在计算他们的分级和平均值: (F1(class1)+ F1(class1)+ F1(class1))/ 3 = F1(总计)

但是,在某些情况下,我会获得F1分数的NaN值。这是一个例子: 设true_label = [1 1 1 2 2 2 3 3 3]和pred_label = [2 2 2 2 2 2 3 3 3]。

然后混淆矩阵看起来像:  C = [0 3 0; 0 3 0; 0 0 3]

这意味着当我计算第一个类的精度(计算F1分数)时,我得到:0 /(0 + 0 + 0),未定义或NaN。

首先,我在计算F1分数或精度时犯了错误吗? 其次,我应该如何在模型选择中处理这些案例?忽略它们或者我应该将此类别的F1分数设置为0(降低此模型的总分数)。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

为了报告有意义的结果,您需要避免将精度除以零。您可能会发现this answer有用,您明确报告结果不佳。此外,this implementation提出了另一种方法来区分您的报告在好的和坏的结果之间。