分类模型性能评估 | metric选取

评价指标形形色色,有些带有可调节的参数。对指标的理解对于理解模型性能和评价别人的论文报告都很重要——如果一篇研究仅汇报单个指标,那从其他指标看模型性能如何?某个度量反映了什么又隐藏了什么呢?
通常,人们使用一些数值(例如,Accuracy)或图示(例如,ROC曲线)来评价分类模型的性能。本文使用一些常见的分类任务的评价指标,探讨依赖单个指标会陷入什么样的误区。
为了叙述分类模型评价指标选取的过程,我们虚构了一个疾病诊断检测。该检测基于多个临床特征来判断病人是否患有某种致命疾病。在评价这个模型时,只考虑其输出结果,而不考虑其潜在的分类机制或相关的临床特征。

分类评价指标由真阳性(TP),假阳性(FP),假阴性(FN)以及真阴性(TN)计算得到,这四个量被列在所谓的混淆矩阵中。


混淆矩阵和与之相关的指标

这四个量各自的重要性取决于分类模型的目的,驱动评价指标的选取。
就医疗检验而言,如果要判定病人是否需要接受某种价格低廉、安全且有效的治疗,那么FP不如FN重要。FN意味着病人得不到应有的治疗而忍受病痛。
相反地,如果这个治疗是使用实验阶段的药物,那么就需要FP很少的偏保守的模型,以避免对未患病个体使用高风险药物。

下图展示了3个不同分类器 5种指标。单个指标相同时,模型的分类效果大相径庭。a~d每组展示三个不同模型的分类结果,采用的指标依次为accuracy、sensitivity(即recall召回率)、precision、F1 score、Matthews correlation coefficient。
每组中的三个模型在粗体指标上相同(均为0.8)。
每组中,被红线划掉的样本表示它对该指标没有影响。
预测值用背景颜色表示,真实值用圆圈内颜色表示。

某个指标相同,但模型实际性能可能差异很大

accuracy指的是被正确分类的样本占比,accuracy不足以评价分类器性能。比如,它没有告诉我们FN更多还是FP更多。如果某疾病很罕见,那模型判定所有样本都是负样本就能达到高accuracy(上图a,第1行),但这对诊断没有任何帮助。
对于FN,有用的度量是Sensitivity(也叫做Recall,TP rate),是被正确预测为正样本的样本数(TP)与实际正样本数(TP+FN)的比值(所有正样本中被正确预测的比例)。
然而TN和FP并不反映在Sensitivity中,模型直接判定所有样本为正样本也能达到高Sensitivity(上图a,第2行)。
,为所有负样本中被正确预测的比例,它有类似的缺点,没有考虑到FN和TP。
为被预测为正的样本中正确的比例,未考虑TN和FN。想象一个非常保守的模型(上图c,第2行),它太保守而漏检了很多患病个体。
一个比较理想的疾病诊断模型,应该使得FN和FP都少,未患病个体不应该被施加不必要的治疗或是背负患病的压力;患病的个体不应该得到错误的乐观判断。

因此,在分类模型评估中,复合的度量指标被提出,这些指标能更完整地概括混淆矩阵。

最流行的指标是 score,它使用参数来调节recall和precision的平衡,其定义为。随着减小,Precision权重变大。当,我们得到最常用的 score,它认为Precision和Recall同等重要,其计算简化为 。
score仍然没有捕捉到完整的混淆矩阵,它基于Precision和Recall,两者都没有考虑TN。
TN对于诊断非常普遍的疾病而言会比较重要。可以使用Matthews correlation coefficient (MCC)来解决这个问题。

MCC考虑了TP,TN,FN,FP

MCC的范围从-1(分类总是错的)到0(模型效果不必随机好)到1(分类总是对的)。需要注意,比较两个模型好坏时,从F1看A模型更优,而从MCC看B模型更优。
不存在能独立度量模型优缺点的指标。

类别分布的平衡也会影响分类结果的理解,此处类别平衡指的是这种疾病在全体人群中的普遍程度。
不平衡会使得对FP和FN的理解更加关键。
比较①检测1000人中仅2人患病的罕见病和②检测1000人中有200人患病的常见病,单个FP样本对前者误诊率的影响相对大得多。
这里我们假设训练集和测试集独立同分布(都真实反应了人群中疾病的流行程度),若无此假设,则结果的解释需更多考虑。
想象一个疾病检测模型,它对某检测对象给出一个数值评分,这个评分不是阴性或是阳性,而是一个反映置信度的数值:这个数值越高,认为其患病的可能性越大。事实上,几乎所有分类器都是通过给评分施加一个阈值从而得出阳性/阴性的预测。阈值越大,FP比例越低,健康个体被施加不必要治疗的可能性越低;阈值越小,FN的比例越小,患病个体被漏诊的可能越低。

有时我们希望无需确定具体阈值地评价分类器性能

用图像评价分类器:ROC和PRC

将已知真实类别的样本按预测分值降序排列
ROC曲线来可视化这个列表。
我们从左下角(预测分值最高的样本)开始,挨个样本看下去。如果是正样本,曲线向上走;反之,向右走。横轴和纵轴分别为FPR和TPR。以某个样本的预测值为阈值,对应的FPR和和TPR正是其坐标值。好分类器的ROC曲线应当尽可能逼近左上角。
ROC对应的数值化指标为ROC曲线下的面积(即Area Under ROC,AUROC),AUROC为1时,意味着一定存在某个阈值能完全正确的区分正负例。

另外一种可视化是Precision-Recall(PR)曲线。按预测值对所有样本排序,逐个样本地选择阈值,在该样本之前的都属于正例,该样本之后的都属于负例。每一个样本的评分作为阈值时,都可以计算对应的precision和recall,那么就可以依此绘制曲线。
好分类器的PR曲线应当尽可能逼近右上角,以求在recall(准确率、查准率)和precision(召回率、查全率)间得到最好的折中。区别于ROC曲线,PR曲线是非单调的。若一个模型的PR曲线被另一模型的PR曲线完全“包住”,则包住者性能优于被包住者。若2个模型的PR曲线交叉,则难断言谁好谁坏,合理的判据是比较PR曲线下的面积(即Area Under PR Curve, AUPRC)大小。

类别不平衡影响指标对模型性能的表征能力

类别不平衡会让ROC曲线可视化分类器性能的能力变差。例如,100人里只有5人患病(上图a),那我们希望5个正样本的评分按预测值降序排列时排在最前面。如果分类器将这5个样本均匀地排在了前15位中,从ROC曲线看,模型性能不错。可真的设定一个将前15个样本都判定为正例的阈值,会产生多达10个FP,这一点从ROC曲线上看不出来,但会体现在PR曲线上。
比较另一种情形:100人里有50人患病(上图b)。某个分类器的预测评分排序如图,它的ROC曲线和左侧的分类器相同,PR曲线则明显优于左侧。
因此,类别不平衡突出的情形下,PR曲线更靠谱。这些指标单独使用也存在明显的局限性。

理解分类器的应用意图是选择合适评价指标的关键。对潜在结果不做深入分析,仅使用单一的指标(即便是F1 score这样的复合指标)是危险的。此外,我们也应该关注类别不平衡对各指标的"扭曲"。

补充:

  1. 随机猜测的模型的ROC曲线位于连接点 (TPR=0, FPR=0) 和 (TPR=1, FPR=1) 的主对角线上。Why?
    假设对任意样本,以固定概率p分为正类。实际有个正样本,个负样本。那么与相等。

Reference
Lever, J., Krzywinski, M. & Altman, N. Classification evaluation. Nat Methods 13, 603–604 (2016). https://doi.org/10.1038/nmeth.3945

你可能感兴趣的:(分类模型性能评估 | metric选取)