机器学习中,如何评估一个分类器的性能优劣?常用的一些指标有:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F 值(F-Measure)等。这些概念比较容易搞混,下面我们就来看看这些指标的区别。

混淆矩阵

通常我们关注的类为正类,其他类为负类,所以分类器在测试数据集上的结果会有这四种情况:

Positive Negative
True True Positive(TP) True Negative(TN)
False False Positive(FP) False Negative(FN)
  • TP:将正类预测为正类的样本数;
  • FN:将正类预测为负类的样本数;
  • FP:将负类预测为正类的样本数;
  • TN:将负类预测为负类的样本数;

准确率(Accuracy)

准确率描述了分类器对整个样本的预估能力,即正类能预测为正类,负类能预测为负类。计算公式如下:

$$Accuracy = \frac{TP+TN}{TP+FN+FP+TN}$$

精确率(Precision)

精确率是针对预测结果而言的,它表示的是预测为正类的样本中,有多少是真正的正类。计算公式如下:

$$Precision = \frac{TP}{TP+FP}$$

召回率(Recall)

召回率是针对样本而言的,表示样本中有多少正类被正确预测了。计算公式如下:

$$Recall = \frac{TP}{TP+FN}$$

F 值(F-Measure)

通常来说,我们希望 Precision 越高的同时 Recall 也越高越好,但是这两者并不能如我们所愿,有时会出现其中一个比较高,一个比较低的情况,互相矛盾。这样我们就必须综合考虑这两个值,那就是 F 值,即综合评价指标。计算公式如下:

$$F = \frac{(\alpha^2+1)P*R}{(\alpha^2P+R)}$$

  • 当 \(\alpha=0.5\) 时,$F_{0.5}$ 表明精确率的权重比召回率高。
  • 当 $\alpha=1$ 时,也就是最常见的 $F_{1}$ 值,表明精确率和召回率同等重要;
  • 当 $\alpha=2$ 时,$F_{2}$ 表明召回率的权重比精确率高;