三、性能度量(performance measure)

  • 衡量模型泛化能力的评价标准
  • 反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这意味着模型的"好坏"是相对的,什么样的模型是好的,不仅取决于算法和数据,还取决于任务需求
  • 在预测任务中,给定样例集D={(x1,y1),(x2,y2),,(xm,ym)}D =\{(x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\},其中yiy_i是示例xix_i的真实标记。要评估学习器ff的性能,就要把学习器预测结果f(x)f(x)与真实标记yy进行比较。

  • 回归任务最常用的性能度量是"均方误差"(mean squared error)
    E(f;D)=1mi=1m(f(xi)yi)2E(f;D)= \frac{1}{m} \sum_{i=1}^m (f(x_i)-y_i)^2
    更一般的,对于数据分布D\mathcal{D}和概率密度函数p()p(\cdot),均方误差描述为:
    E(f;D)=xD(f(x)y)2p(x)dxE(f;\mathcal{D})= \int_{x\backsim\mathcal{D}}(f(x)-y)^2p(x)dx

3.1 错误率与精度

分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务

  • 错误率:分类错误的样本数占样本总数的比例
  • 精度:分类正确的样本数占样本总数的比例
  • 对样例集DD,分类错误率定义为:
    E(f;D)=1mi=1mI(f(xi)yi)E(f;D)=\frac {1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)\neq y_i)
    精度定义为:
    acc(f;D)=1mi=1mI(f(xi)=yi)=1E(f;D)acc(f;D)=\frac {1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)=y_i)=1-E(f;D)

  • 更一般的,对于数据分布D\mathcal{D}和概率密度函数p()p(\cdot),错误率与精度可分别描述为
    E(f;D)=xDI(f(x)y)p(x)dxE(f;\mathcal{D})= \int_{x\backsim\mathcal{D}}\mathbb{I}(f(x)\neq y)p(x)dx
    acc(f;D)=xDI(f(x)=y)p(x)dx=1E(f;D)acc(f;\mathcal{D})= \int_{x\backsim\mathcal{D}}\mathbb{I}(f(x)= y)p(x)dx= 1- E(f;\mathcal{D})

3.2 查准率、查全率与F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形,令TPFPTNFNTP、FP、TN、FN分别表示其对应的样例数,则显然有TP+FP+TN+FN=TP+FP+TN+FN=样例总数。分类结果的混淆矩阵(confusion matrix)如下表所示

分类结果混淆矩阵

真实情况 预测结果
正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)
  1. 查准率(precision)PP:真正例在预测结果中正例的比例,公式为:
    P=TPTP+FPP=\frac {TP}{TP+FP}

  2. 查全率(recall)RR:真正例在真实情况中正例的比例,公式为:
    R=TPTP+FNR=\frac {TP}{TP+FN}

  • 查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使查全率和查准率都很高
  1. PRP-R 曲线

根据学习器的预测结果对样例进行排序,排在前面的是学习器认为"最可能"是正例的样本,排在最后的则是学习器认为"最不可能"是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次每次可以计算出当前的查全率、查准率。以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称"PRP-R曲线"

  • 在进行比较时,当一个学习器的PRP-R曲线被另一个学习器的曲线完全"包住",则可断言后者的性能优于前者;如果两个学习器的PRP-R曲线发生了交叉,则难以一般性地断言两者孰优孰劣,只能在具体的查准率或查全率条件下进行比较。
  1. 平衡点(Break-Even Point)

综合考虑查准率和查全率的性能度量,即"查准率=查全率"时的取值

  • 缺点:过于简化
  1. F1F_1度量

综合考虑查准率和查全率的性能度量,表达式为:
F1=2×P×RP+R=2×TP+TPTNF_1=\frac {2 \times P \times R}{P+R}=\frac {2 \times TP}{样例总数+TP-TN}

  • 基于查准率与查全率的调和平均定义的:1F1=12(1P+1R)\frac{1}{F_1}=\frac {1}{2}(\frac{1}{P} +\frac{1}{R})

F1F_1度量的一般形式--FβF_\beta

  • FβF_\beta是基于查准率与查全率的加权调和平均定义的:1Fβ=11+β2(1P+β2R)\frac{1}{F_\beta}=\frac {1}{1+\beta ^2}(\frac{1}{P} +\frac{\beta ^2}{R})
  • 能表达出对查准率/查全率的不同偏好
  • 定义为:
    Fβ=(1+β2)×P×R(β2×P)+RF_\beta=\frac {(1+\beta^2) \times P \times R}{(\beta^2\times P)+R}
  • 其中β>0\beta>0度量了查全率对查准率的相对重要性。
    • β=1\beta=1时退化为标准的F1F_1
    • β>1\beta>1时查全率有更大影响
    • β<1\beta<1时查准率有更大影响

② 基于nn个二分类混淆矩阵上综合考察查准率和查全率

二分类混淆矩阵来源:

  • 进行多次训练/测试,每次得到一个混淆矩阵
  • 在多个数据集上进行训练/测试,估计算法的全局性能
  • 执行多分类任务,每两两类别的组合都对应一个混淆矩阵
  • F1F_1(macro-F1F_1)

先在各混淆矩阵上分别计算出查准率和查全率,记为(P1,R1),(P2,R2),,(Pn,Rn)(P_1,R_1),(P_2,R_2),\ldots,(P_n,R_n),再计算平均值,这样就得到宏查准率(macro-P)、宏查全率(macro-R)、以及相应的宏F1F_1

macroP=1ni=1nPimacro-P = \frac {1}{n}\sum_{i=1}^n P_i

macroR=1ni=1nRimacro-R = \frac {1}{n}\sum_{i=1}^n R_i

macroF1=2×macroP×macroRmacroP+macroRmacro-F_1 = \frac{2 \times macro-P \times macro-R}{macro-P + macro-R}


  • F1F_1(micro-F1F_1)

先将各混淆矩阵对应元素进行平均,得到TP、FP、TN、FN的平均值,分别记为TPˉFPˉTNˉFNˉ\bar{TP}、\bar{FP}、\bar{TN}、\bar{FN},再基于这些平均值计算出微查准率(micro-P)、微查全率(micro-R)、以及相应的微F1F_1

microP=TPˉTPˉ+FPˉmicro-P = \frac {\bar{TP}} {\bar{TP}+\bar{FP}}

microR=TPˉ/(TPˉ+FNˉ)micro-R =\bar{TP}/ (\bar{TP} + \bar{FN})

microF1=2×microP×microRmicroP+microRmicro-F_1 = \frac{2 \times micro-P \times micro-R}{micro-P + micro-R}

3.3 ROC与AUC

  • 很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类,否则为反类。这个实值或预测结果的好坏,直接决定了学习器的泛化能力。
  • 实际上,根据这个实值或概率预测结果,可将测试样本进行排序,"最可能"是正例的排在最前面,"最不可能"是正例的排在最后面。这样,分类过程就相当于在这个排序中以某个"截断点"(cut point)将样本分为两部分,前一部分判作正例,后一部分则判作反例。
  • 在不同的应用任务中,可根据任务需求来采用不同的截断点。若更重视"查准率",则可选择排序中靠前的位置进行截断,若更重视"查全率",则可选择靠后的位置进行截断。因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的"期望泛化性能"的好坏,或者说,"一般情况下"泛化性能的好坏。

1. ROC曲线

  • 从排序本身的质量好坏来研究学习器泛化性能的有力工具
  • 全称"受试者工作特征"(Receiver Operating Characteristic)曲线
  • PRP-R曲线相似,根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图。ROC曲线的纵轴为"真正例率"(True Positive Rate,简称TPR),横轴是"假正例率"(False Positive Rate,简称FPR)
    • 真正例率TPR: 真正例占真实情况中正例的比例
      计算公式:TPR=TPTP+FNTPR=\frac {TP}{TP+FN}
    • 假正例率FPR: 假正例占真实情况中反例的比例
      计算公式:FPR=FPTN+FPFPR=\frac {FP}{TN+FP}
  • 绘图过程:
    给定m+m^+个正例和mm^-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0, 0)处标记一个点。然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x, y),当前若为真正例,则对应标记点的坐标为(x,y+1m+)(x,y+\frac {1}{m^+}),若为假正例,则对应标记点的坐标为(x+1m,y)(x+\frac {1}{m^-},y),然后用线段连接相邻点即得。

  • 进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全"包住",则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性地断言孰优孰劣。

2. AUC(Area Under ROC Curve)

通过比较ROC曲线下的面积来比较学习器的性能

  • 假定ROC曲线是由坐标为{(x1,y1),(x2,y2),,(xm,ym)}\{(x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\}的点按序连接而形成(x1=0,xm=1x_1=0,x_m=1),则AUC可估算为:
    AUC=12i=1m1(xi+1xi)(yi+yi+1)AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_i)\cdot(y_i+y_{i+1})

  • AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。给定m+m^+个正例和mm^-个反例,令D+D^+DD^-分别表示正、反例集合,则排序"损失"(loss)定义为:
    lrank=1m+mx+D+xD(I(f(x+)<f(x)+12I(f(x+)=f(x)))l_{rank}=\frac {1}{m^+m^-}\sum_{x^+\in D^+}\sum_{x^-\in D^-}(\mathbb{I}(f(x^+)<f(x^-)+\frac {1}{2}\mathbb{I}(f(x^+)=f(x^-)))
    即考虑每一对正、反例,若正例预测值小于反例,则记一个"罚分",若相等,则记0.5个"罚分"。容易看出,lrankl_{rank}对应的是ROC曲线之上的面积:若一个正例在ROC曲线上对应标记点的坐标为(x,y),则x恰是排序排序在其之前的反例所占的比例,即假正例率。因此有:
    AUC=1lrankAUC = 1- l_{rank}