对机器学习的性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure)。最常用的性能度量有错误率和精度,但其不能满足所有的任务需求,这时就需要其他的性能度量。
本期小哥将简单介绍:「查准率」(准确率)、「查全率」(召回率)、「F1度量」和「P-R曲线」。
1.查准率和查全率
对于二分类问题,可根据真实样本类别和模型预测类别组合得到分类结果的混淆矩阵(confusion matrix)。

图片来自《机器学习》-周志华
其中,「TP」为真正例(true positive)样例数,「FN」为假反例(false negative)样例数,「FP」为假正例(false positive)样例数,「TN」为真反例(true negative)样例数。则有,样本总数=TP+FN+FP+TN。
查准率P(precision)和查全率R(recall)的定义为:

从定义中可以看出:
- 查准率是针对模型「预测结果」而言的 ,表示「预测为正」的样本中有多少是真正的正样本。
- 查全率是针对「原来的样本」而言的 ,表示「样本中」的正例有多少被预测正确了 。
查准率和查全率是一对矛盾的度量,一般情况下,查全率高时, 查准率偏低;查准率高时,查全率偏低。通常只在一些简单任务中,才能使查全率和查准率都很高。那么应该怎样使用查全率和查准率综合判断一个模型的性能高低呢?这就需要用到「PR曲线」。
2.P-R曲线
根据模型的预测结果对样例进行「排序」,排在前面的是模型认为最可能是正例的样本,排在后面的是模型认为最不可能是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次可计算当前的查全率和查准率,以查准率为y轴,以查全率为x轴,可以画出下面的P-R曲线。

图片来自《机器学习》-周志华
「P-R曲线中有如下规律:」
- 如果一个学习器的P-R曲线被另一个学习器的P-R曲线「完全包住」,则可断言后者的性能优于前者。比如:图中模型A性能优于C。
- 如果两个模型的P-R曲线发生了「交叉」,就需要通过平衡点(break-event point,简称BEF,查全率=查准率)进行判断。比如:图中模型A的BEF高于B的BEF,就认为模型A性能优于B。
但是BEF过于简化,更常用的是「F1度量」。
3.F1度量
如果考虑P和R的偏好程度,则有:
其中:
- 时,查准率有更大影响;
- 时,标准F1度量;
- 时,查全率有更大影响。
F1是根据P和R的「调和平均」定义的:
是根据「加权调和平均」定义的:
通常情况下,我们会具有多个二分类的混淆矩阵,如果需要在多个二分类混淆矩阵上综合考察P和R,有以下两种方法。
3.1宏方法
先在各混淆矩阵上分别计算出查准率和查全率,再计算「均值」,这样就得到了宏查准率(macro-P)、宏查全率(macro-R)和宏F1(macro-F1)。
3.2微方法
先计算各混淆矩阵对应的TP、FP、TN、FN的「均值」,然后根据这些平均值计算微查准率(micro-P)、微查全率(micro-R)和微F1(micro-F1)。
参考文献:《机器学习》——周志华