机器学习算法评估实战
上QQ阅读APP看书,第一时间看更新

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曲线表现的是随着分类阈值p 变化,精确率和召回率的变化情况。分类阈值是指模型将一个样本判断为正样本和负样本的分割阈值。如在朴素贝叶斯模型中,如果模型将正样本概率p ≥0.5的情况预测为正样本,其余作为负样本,那么在这个分类阈值下计算出的精确率和召回率就是P-R曲线上的一个点。我们再继续调整分类阈值,将正样本概率p ≥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的缩写,即平均精确率。

图片 332

图1.1 P-R曲线

P-R曲线中精确率和召回率相等的点称为平衡点,如图1.2所示,横轴表示召回率,纵轴表示精确率。在模型超参数优化过程中,精确率的提升往往带来召回率的下降,反之亦然,因此平衡点也就是通常我们认为的精确率和召回率的折中位置,在这一点上模型的效果达成的收益是全局最优的。在具体业务中还要考虑精确率和召回率哪个更重要。

图片 331

图1.2 P-R曲线平衡点

除了P-R曲线,还有一个指标能反映模型的全局性能,这就是\mathrm{F}_{n} -score,计算公式如下:

\mathrm{F}_{n}-\mathrm{score}=\left(1+n^{2}\right) \cdot Precision \cdot \frac{\text { Recall }}{n^{2}(\text { Precision }+\text { Recall })}

(1-5)

n=1 时,\mathrm{F}_{n} -score就是我们常见的\mathrm{F}_1 -score,\mathrm{F}_1 -score表达的是精确率和召回率重要性都相同的情况下模型的整体分值,分值越高说明模型效果越好。\mathrm{F}_2 -score表示召回率的重要性是精确率的2倍,\mathrm{F}_{0.5} -score则表示精确率的重要性是召回率的2倍。在具体业务中,\mathrm{F}_{n} -score是一个简单而又实用的评估指标。

对于多分类的情况,可以将n 个类别的分类任务看作n 个二分类问题。即计算每个二分类模型的\mathrm{F}_1 -score值,然后取平均值,这种评估指标又称为Macro \mathrm{F}_1 -score。

和Macro \mathrm{F}_1 -score对应的,还有Micro \mathrm{F}_1 -score。它也是将n 分类问题看作n 个二分类问题,但将每个二分类模型的精确率和召回率的分子分母对应相加,然后根据这个整体的精确率和召回率去计算\mathrm{F}_1 -score。无论是Macro \mathrm{F}_1 -score还是Micro \mathrm{F}_1 -score,都是分值越高,模型效果越好。