分类--精确率和召回率
精确率
精确率指标尝试回答以下问题:
在被识别为正类别的样本中,确实为正类别的比例是多少?
精确率的定义如下:
$$\text{Precision} = \frac{TP}{TP+FP}$$
让我们来计算一下上一部分中用于分析肿瘤的机器学习模型的精确率:
真正例 (TP):1 | 假正例 (FP):1 |
假负例 (FN):8 | 真负例 (TN):90 |
$$\text{精确率} = \frac{TP}{TP+FP} = \frac{1}{1+1} = 0.5$$
该模型的精确率为 0.11,也就是说,该模型在预测恶性肿瘤方面的正确率是 50%。
召回率
召回率尝试回答以下问题:
在所有正类别样本中,被正确识别为正类别的比例是多少?
从数学上讲,召回率的定义如下:
$$\text{召回率} = \frac{TP}{TP+FN}$$
让我们来计算一下肿瘤分类器的召回率:
真正例 (TP):1 | 假正例 (FP):1 |
假负例 (FN):8 | 真负例 (TN):90 |
$$\text{召回率} = \frac{TP}{TP+FN} = \frac{1}{1+8} = 0.11$$
该模型的召回率是 0.11,也就是说,该模型能够正确识别出所有恶性肿瘤的百分比是 11%。
精确率和召回率:一场拔河比赛
要全面评估模型的有效性,必须同时检查精确率和召回率。遗憾的是,精确率和召回率往往是此消彼长的情况。也就是说,提高精确率通常会降低召回率值,反之亦然。请观察下图来了解这一概念,该图显示了电子邮件分类模型做出的 30 项预测。分类阈值右侧的被归类为“垃圾邮件”,左侧的则被归类为“非垃圾邮件”。
我们根据图 1 所示的结果来计算精确率和召回率值:
真正例 (TP):8 | 假正例 (FP):2 |
假负例 (FN):3 | 真负例 (TN):17 |
精确率指的是被标记为垃圾邮件的电子邮件中正确分类的电子邮件所占的百分比,即图 1 中阈值线右侧的绿点所占的百分比:
$$\text{Precision} = \frac{TP}{TP + FP} = \frac{8}{8+2} = 0.8$$
召回率指的是实际垃圾邮件中正确分类的电子邮件所占的百分比,即图 1 中阈值线右侧的绿点所占的百分比:
$$\text{Recall} = \frac{TP}{TP + FN} = \frac{8}{8 + 3} = 0.73$$
图 2 显示了提高分类阈值产生的效果。
假正例数量会减少,但假负例数量会相应地增加。结果,精确率有所提高,而召回率则有所降低:
真正例 (TP):7 | 假正例 (FP):1 |
假负例 (FN):4 | 真负例 (TN):18 |
$$\text{Precision} = \frac{TP}{TP + FP} = \frac{7}{7+1} = 0.88$$
\[\text{Recall} = \frac{TP}{TP + FN} = \frac{7}{7 + 4} = 0.64
\]
相反,图 3 显示了降低分类阈值(从图 1 中的初始位置开始)产生的效果。
假正例数量会增加,而假负例数量会减少。结果这一次,精确率有所降低,而召回率则有所提高:
真正例 (TP):9 | 假正例 (FP):3 |
假负例 (FN):2 | 真负例 (TN):16 |
$$\text{Precision} = \frac{TP}{TP + FP} = \frac{9}{9+3} = 0.75$$
\[\text{Recall} = \frac{TP}{TP + FN} = \frac{9}{9 + 2} = 0.82
\]
我们已根据精确率和召回率指标制定了各种指标。