一、计算公式

  1. 精确率

    2.召回率
  2. F值

二、详细分析
2.1精确率
在上一篇文章中,我们已经知道了精度的计算公式:

一般来说,只要计算出这个 Accuracy 值,基本上就可以掌握分类结果整体的精度了。但是有时候只看这个结果会有问题,所以还有别的指标。 比如下面这个例子:
假设图中的圆点是 Positive 数据、叉号是Negative 数据,我们来考虑一下数据量极其不平衡的情况。

假设有 100 个数据,其中 95 个是 Negative。那么,哪怕出现模型把数据全部分类为 Negative 的极端情况,Accuracy 值也为 0.95,也就是说模型的精度是 95%。但是不管精度多高,一个把所有数据都分类为 Negative 的模型,不能说它是好模型吧?遇到这种情况,只看整体的精度看不出来问题。
所以要引入别的指标。这些指标稍微有点复杂,结合具体的数据来看更好理解,所以我们用这个例子来说明吧:


这个例子看上去对 Positive 数据分类得不够好。首先我们来看第一个指标——精确率。它的英文是 Precision。

这个例子看上去对 Positive 数据分类得不够好。首先我们来看第一个指标——精确率。它的英文是 Precision。

这个值越高,说明分类错误越少。 拿这个例子来说,虽然被分类为 Positive 的数据有 3 个,但其中只有 1 个是分类正确的。所以计算得出的精确率很低。

2.2召回率
还有一个指标是召回率,英文是 Recall。

把精确率分母上的 FP 换成 FN 就是它了。这个指标只关注 TP 和 FN。根据表达式来看,它的含义是在Positive 数据中,实际被分类为 Positive 的数据所占的比例:

我们运用公式可以计算出来当前的召回率:

这个值越高,说明被正确分类的数据越多。 拿这个例子来说,虽然 Positive 数据共有 5 个,但只有 1 个被分类为 Positive。所以计算得出的召回率也很低。
基于这两个指标来考虑精度是比较好的。 精确率和召回率都很高的模型就认为是一个好模型,但是在实际情况下,精确率和召回率会一个高一个低,需要我们取舍。