0
点赞
收藏
分享

微信扫一扫

评价指标 F值 | 如何计算F1 | F1-micro 与 F1-macro

F1-micro 与 F1-macro

之前写一个作业样本不均衡问题。然后查了很多文章都说要更换评价指标,不能再使用准确率了,要计算F值。我看了一下F值怎么计算,看了挺多文章的,但是感觉说的比较迷惑,或者说法比较拗口。最后还是自己再总结一个。

查准率、查全率、F值

我们平时对于一个模型预测的准不准,我们最先想到的是用准确率进行评价。

$$
accuracy = \frac{true}{total}
$$

这个虽然常用,但不能满足所有任务的需求。

所以我们可以引入查准率查全率

  • 查准率(Precision):某一分类你预测对了多少个。

    $P = \frac{预测对的某一类}{你预测的某一类}$

  • 查全率(Recall):某一分类你预测出来多少个。

    $R = \frac{预测对的某一类}{样本中的某一类}$

举个例子:
在这里插入图片描述
计算○的:

$P_○ = \frac{2}{3}$

$R_○ = \frac{3}{2}$

查准率和查全率二者不可得兼。大概是下图这样的图像。不信你可以自己算一下。对于不同的实验曲线的形状可能略有不同。
在这里插入图片描述

F值是二者的综合:
$$
F(k) =\frac{ ( 1 + k ) \times P \times R} { k^2 \times P + R },\quad 其中k>0
$$

其中$k$可以看做一个权值对待:

  • $k>1$就是查全率有更大影响,
  • $k<1$查准率有更大影响。

而我们常用的是$F1$值,$F(1)$的意思,$k=1$,此时

$$
F(1) = \frac {2 \times P \times R} { P + R }
$$

对于上边的例子F1值就是:$F1_○ = \frac{2\times \frac{2}{3} \times \frac{3}{2}}{ \frac{2}{3} + \frac{3}{2}}$

对于二分类问题

为了跟大家一样显得我正规一点,所以我也写了下面这一段。但是我的建议是不用往下看二分类这一段了。因为我一看什么TP、FN这些字母我就头大。就是看了之后容易让人更迷惑。并且跟上面的多分类还衔接不上。道理就是我上边说的那一段,所以直接跳过二分类,看多分类就可以了。

二分类呢就是我上面举的那个例子。别人写F值的计算一般都喜欢用一个混淆矩阵来表示。

我们需要建立以下几个量的混淆矩阵:

  • 真正例(True Positive,TP):真实类别为正例,预测类别为正例。
  • 假正例(False Positive,FP):真实类别为负例,预测类别为正例。
  • 假负例(False Negative,FN):真实类别为正例,预测类别为负例。
  • 真负例(True Negative,TN):真实类别为负例,预测类别为负例。

还是上面那个例子,我们讲说圆圈是正例,方块是负例。现在就可以转化成下图这样。
在这里插入图片描述

此时:

  • 准确率: $A = \frac{T P+T N}{\text { TP+FP+FN+TN }}$

  • 精确率:$P=\frac{T P}{T P+F P}$
  • 召回率:$R=\frac{T P}{T P+F N}$
  • F1值: $F 1=\frac{2 \times P \times R}{P+R}$

多分类

为什么我说可以不看二分类那一段,因为那一段真的四个字母表示特别容易让人迷惑。并且它跟多分类也衔接不上。因为在多分类里你没有办法用简单的正例负例来说了。

在这里插入图片描述

不需要你再翻回去了,我直接把那个内容搬下来了。

  • 查准率(Precision):某一分类你预测对了多少个。

    $P = \frac{预测对的某一类}{你预测的某一类}$

  • 查全率(Recall):某一分类你预测出来多少个。

    $R = \frac{预测对的某一类}{样本中的某一类}$

在这里就涉及到了宏F值(F-macro)和微F值(F-micro)。

  • 宏F值:求取每一类的F值之后求平均值。

    $F{Macro} = \frac{1}{n}\sum{i-1}^n F1^{(i)}$

  • 微F值:这样每一类的预测结果都加起来之后再计算查准率、查全率、F值。

    $F_{Micro} = \frac {k \times P \times R} { k^2 \times P + R }$

举报

相关推荐

0 条评论