1.2 准召率和P-R曲线
准召率是精确率(Precision)和召回率(Recall)的统称。精确率和召回率是分类问题中常见的指标。通俗来说,精确率就是模型正确预测的正样本占全部预测为正的样本的比例,召回率就是模型正确预测的正样本占全部正样本的比例。准确率(Accuracy)也是一种常用的指标,它是指模型正确预测的正、负样本占全部样本的比例。
我们可以通过以下公式来表达:
Precision = TP/(TP+FP)
(1-2)
Recall = TP/(TP+FN)
(1-3)
Accuracy = (TP+TN)/TOTAL
(1-4)
其中,TOTAL表示全集样本数量。
假设测试集样本数量为200个,其中正样本100个,负样本100个。
如果模型将正样本中的90个预测为正样本,10个预测为负样本,负样本中的5个预测为正样本,95个预测为负样本,那么精确率、召回率、准确率分别为:
Precision = 90/(90+5) ≈ 94.74%
Recall = 90/(90+10) = 90%
Accuracy = (90+95)/200 = 92.50%
模型预测值和真值之间的关系可以通过一个混淆矩阵来描述,如表1.2所示。
1)若一个实例是正样本且被预测为正样本,为真正样本(True Positive,TP)。
2)若一个实例是正样本,但是被预测为负样本,为假负样本(False Negative,FN)。
表1.2 混淆矩阵
|
T(真正值) |
F(真负值) |
---|---|---|
P(预测正值) |
TP |
FP |
N(预测负值) |
FN |
TN |
3)若一个实例是负样本,但是被预测为正样本,为假正样本(False Positive,FP)。
4)若一个实例是负样本且被预测为负样本,为真负样本(True Negative,TN)。
需要解释的是,一个模型的精确率和召回率并不是一成不变的,当我们调整模型的分类阈值时,精确率和召回率就会随之不断地变化。我们通过以下案例来看一下。
图1.1所示P-R曲线表现的是随着分类阈值变化,精确率和召回率的变化情况。分类阈值是指模型将一个样本判断为正样本和负样本的分割阈值。如在朴素贝叶斯模型中,如果模型将正样本概率≥0.5的情况预测为正样本,其余作为负样本,那么在这个分类阈值下计算出的精确率和召回率就是P-R曲线上的一个点。我们再继续调整分类阈值,将正样本概率≥0.4的情况预测为正样本,其余作为负样本,这时再计算出精确率和召回率,获得另一个点,直到计算出分类阈值属于集合{0,0.1,0.2, 0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0}中每个值时对应的精确率和召回率,我们就可以描绘出图1.1所示的P-R曲线。其中,AP是Average Precision的缩写,即平均精确率。
图1.1 P-R曲线
P-R曲线中精确率和召回率相等的点称为平衡点,如图1.2所示,横轴表示召回率,纵轴表示精确率。在模型超参数优化过程中,精确率的提升往往带来召回率的下降,反之亦然,因此平衡点也就是通常我们认为的精确率和召回率的折中位置,在这一点上模型的效果达成的收益是全局最优的。在具体业务中还要考虑精确率和召回率哪个更重要。
图1.2 P-R曲线平衡点
除了P-R曲线,还有一个指标能反映模型的全局性能,这就是 -score,计算公式如下:
Precision
(1-5)
当时, -score就是我们常见的 -score, -score表达的是精确率和召回率重要性都相同的情况下模型的整体分值,分值越高说明模型效果越好。-score表示召回率的重要性是精确率的2倍, -score则表示精确率的重要性是召回率的2倍。在具体业务中, -score是一个简单而又实用的评估指标。
对于多分类的情况,可以将 个类别的分类任务看作 个二分类问题。即计算每个二分类模型的 -score值,然后取平均值,这种评估指标又称为Macro -score。
和Macro -score对应的,还有Micro -score。它也是将 分类问题看作 个二分类问题,但将每个二分类模型的精确率和召回率的分子分母对应相加,然后根据这个整体的精确率和召回率去计算 -score。无论是Macro -score还是Micro -score,都是分值越高,模型效果越好。