周志华西瓜书笔记 2.3 性能度量

2.3 性能度量

  对学习器的泛化性能进行评估, 不仅需要有效可行的实验估计方法, 还需要有模型泛化能力的评价标准, 这就是性能度量(performance measure). 性能度量反映了任务需求, 在对比不同模型的能力时, 使用不同的性能度量往往会导致不同的评判结果; 这意味着模型的 “好坏” 是相对的, 什么样的模型是好的, 不仅取决于算法, 还决定于任务需求.

  回归任务最常用的性能度量是 “均方误差” (mean squared error)
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 . E(f;D)=\frac1m\sum^m_{i=1}(f(x_i)-y_i)^2. E(f;D)=m1i=1m(f(xi)yi)2.
(其中 y i y_i yi是示例 x i x_i xi的真实标记, f ( x ) f(x) f(x)是学习器预测结果).

  更一般的, 对于数据分布 D D D和概率密度函数 p ( ⋅ ) p(\cdot) p(), 均方误差可描述为
E ( f ; D ) = ∫ x     ~ D ( f ( x ) − y ) 2 p ( x ) d x . E(f;D)=\int_{x\widetilde{~~~}D}(f(x)-y)^2p(x)dx. E(f;D)=x    D(f(x)y)2p(x)dx.

2.3.1 错误率与精度

对于样例集 D D D, 分类错误率定义为
E ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) ≠ y i ) . E(f;D)=\frac1m\sum^m_{i=1}\Bbb I(f(x_i)\not=y_i). E(f;D)=m1i=1mI(f(xi)=yi).
精度则定义为
a c c ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = y i ) acc(f;D)=\frac1m\sum^m_{i=1}\Bbb I(f(x_i)=y_i) acc(f;D)=m1i=1mI(f(xi)=yi)
= 1 − E ( f ; D ) . =1-E(f;D). =1E(f;D).
对于数据分布 D D D和概率密度函数 p ( ⋅ ) p(\cdot) p(), 错误率与精度可分别描述为
E ( f ; D ) = ∫ x     ~ D I ( f ( x ) ≠ y ) p ( x ) d x , E(f;D)=\int_{x\widetilde{~~~}D}\Bbb I(f(x)\not=y)p(x)dx, E(f;D)=x    DI(f(x)=y)p(x)dx,
a c c ( f ; D ) = ∫ x     ~ D I ( f ( x ) = y ) p ( x ) d x acc(f;D)=\int_{x\widetilde{~~~}D}\Bbb I(f(x)=y)p(x)dx acc(f;D)=x    DI(f(x)=y)p(x)dx
= 1 − E ( f ; D ) . =1-E(f;D). =1E(f;D).

2.3.2 查准率、查全率与F1

  在信息检索中, 我们经常会关心 “检索出的信息中有多少比例是用户感兴趣的” “用户感兴趣的信息中有多少被检索出来了”. “查准率”(precision) 与 “查全率”(recall) 是更为适用于此类需求的性能度量.

  对于二分类问题, 可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative) 四种情形, 令 T P 、 F P 、 T N 、 F N TP、FP、TN、FN TPFPTNFN分别表示对应的样例数, 则显然有 T P + F P + T N + F N = TP+FP+TN+FN= TP+FP+TN+FN=样例总数. 分类结果的 “混淆矩阵”(confusion matrix)如表所示.
在这里插入图片描述
查准率 P P P与查全率 R R R分别定义为
P = T P T P + F P , P=\frac{TP}{TP+FP}, P=TP+FPTP,
R = T P T P + F N . R=\frac{TP}{TP+FN}. R=TP+FNTP.
  查准率和查全率是一对矛盾的度量. 一般来说, 查准率高时, 查全率往往偏低; 而查全率高时, 查准率往往偏低. 通常只有在一些简单任务中, 才可能使查全率和查准率都很高.

  根据学习器的预测结果对样例进行排序, 按此顺序逐个把样本作为正例进行预测, 则每次可以计算出当前的查全率、查准率. 以查准率为纵轴、查全率为横轴作图, 就得到查准率-查全率曲线, 简称 “P-R曲线”, 显示该曲线的图称为 “P-R图”.
在这里插入图片描述
  P-R 图直观地显示出学习器在样本总体上的查全率、查准率. 在进行比较时, 若一个学习器的 P-R 曲线被另一个学习器的曲线完全 “包住”, 则可断言后者的性能优于前者; 如果两个学习器的 P-R 曲线发生了交叉, 一个比较合理的判据是比较 P-R 曲线下的面积的大小, 它在一定程度上表征了学习器在查准率和查全率上取得相对 “双高” 的比例. 而面积这个值不容易估算, 因此人们设计了一些综合考虑查准率、查全率的性能度量, 如 “平衡点”.

  “平衡点”(Break-Event Point, 简称BEP) 是 “查准率=查全率” 时的取值, 例如图2.3中学习器 C 的 BEP 是 0.64, 而基于 BEP 的比较, 可认为学习器 A 由于 B.

  但 BEP 还是过于简化了些, 更常用的是 F 1 F1 F1度量:
F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N . F1=\frac{2\times P\times R}{P+R}=\frac{2\times TP}{样例总数+TP-TN}. F1=P+R2×P×R=+TPTN2×TP.
F 1 F1 F1是基于查准率与查全率的调和平均(harmonic mean)定义的:
1 F 1 = 1 2 ⋅ ( 1 P + 1 R ) . \frac1{F1}=\frac12\cdot(\frac1P+\frac1R). F11=21(P1+R1).
  在一些应用中, 对查准率和查全率的重视程度有所不同. 有时查准率更重要, 有时查全率更重要. F 1 F1 F1度量的一般形式– F β F_\beta Fβ, 能让我们表达出对查准率/查全率的不同偏好, 它定义为
F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R , F_\beta=\frac{(1+\beta^2)\times P\times R}{(\beta^2\times P)+R}, Fβ=(β2×P)+R(1+β2)×P×R,
其中 β > 0 \beta>0 β>0度量了查全率对查准率的相对重要性. β = 1 \beta=1 β=1时退化为标准的 F 1 F1 F1; β > 1 \beta>1 β>1时查全率有更大影响; β < 1 \beta<1 β<1时查准率有更大影响.
F β F_\beta Fβ则是加权调和平均:
1 F β = 1 1 + β 2 ⋅ ( 1 P + β 2 R ) . \frac1{F_\beta}=\frac1{1+\beta^2}\cdot(\frac1P+\frac{\beta^2}R). Fβ1=1+β21(P1+Rβ2).
  很多时候我们有多个二分类混淆矩阵, 我们希望在 n n n个二分类混淆矩阵上综合考察查准率和查全率. 一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率, 再计算平均值, 这样就得到 “宏查准率”(macro-P)、“宏查全率”(macro-R), 以及相应的 “宏 F 1 F1 F1”(macro- F 1 F1 F1):
m a c r o − P = 1 n ∑ i = 1 n P i macro{-}P=\frac1n\sum^n_{i=1}P_i macroP=n1i=1nPi
m a c r o − R = 1 n ∑ i = 1 n R i macro{-}R=\frac1n\sum^n_{i=1}R_i macroR=n1i=1nRi
m a c r o − F 1 = 2 × m a c r o − P × m a c r o − R m a c r o − P + m a c r o − R . macro{-}F1=\frac{2\times macro{-}P\times macro{-}R}{macro{-}P+macro{-}R}. macroF1=macroP+macroR2×macroP×macroR.

  亦可先将混淆矩阵的对应元素进行平均, 得到 T P 、 F P 、 T N 、 F N TP、FP、TN、FN TPFPTNFN的平均值, 分别记为 T P ‾ 、 F P ‾ 、 T N ‾ 、 F N ‾ \overline{TP}、\overline{FP}、\overline{TN}、\overline{FN} TPFPTNFN, 在基于这些平均值计算出 “微查准率”(micro-P)、“微查全率”(micro-R) 和 “微 F 1 F1 F1”(micro- F 1 F1 F1):
m i c r o − P = T P ‾ T P ‾ + F P ‾ , micro{-}P=\frac{\overline{TP}}{\overline{TP}+\overline{FP}}, microP=TP+FPTP,
m i c r o − R = T P ‾ T P ‾ + F N ‾ , micro{-}R=\frac{\overline{TP}}{\overline{TP}+\overline{FN}}, microR=TP+FNTP,
m i c r o − F 1 = 2 × m i c r o − P × m i c r o − R m i c r o − P + m i c r o − R micro{-}F1=\frac{2\times micro{-}P\times micro{-}R}{micro{-}P+micro{-}R} microF1=microP+microR2×microP×microR

2.3.3 ROC 与 AUC

  很多学习器是为测试样本产生一个实值或概率预测, 然后将这个预测值与一个分类阈值(threshold) 进行比较, 若大于阈值则分为正类, 否则为反类. 这个实值或概率预测结果的好坏, 直接决定了学习器的泛化能力. 实际上, 我们可将测试样本进行排序, 在这个排序中以某个 “截断点”(cut point) 将样本分为两部分, 前一部分判作正例, 后一部分则判作反例.

  在不同的应用任务中可根据任务需求来采用不同的截断点, 如更重视 “查准率”, 则可选择排序中靠前的位置进行截断; 若更重视 “查全率”, 则可选择靠后的位置进行截断.

  ROC 全称是 “受试者工作特征”(Receiver Operating Characteristic) 曲线. 与2.3.2节中介绍的 P-R曲线相似, 根据学习器的预测结果对样例进行排序, 按此顺序逐个把样本作为正例进行预测, 每次计算出两个重要量的值, 分别以它们为横、纵坐标作图就得到了 “ROC曲线”. 与 P-R曲线使用查准率、查全率为纵、横轴不同, ROC曲线的纵轴是 “真正例率”(True Positive Rate, 简称TPR), 横轴是 “假正比例”(False Positive Rate, 简称FPR), 基于表2.1中的符号, 两者分别定义为
T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP

  显示 ROC 曲线的图称为 “ROC图”. 对角线对应于 “随机猜测” 模型, 而点(0,1)则对应于将所有正例排在所有反例之前的 “理想模型”.
在这里插入图片描述
  现实任务中通常仅能获得有限个(真正例率, 假正例率)坐标对, 只能绘制出图2.4(b)所示的近似 ROC 曲线.
绘图过程: 给定 m + m^+ m+个正例和 m − m^- m个反例, 根据学习器预测结果对样例进行排序, 然后把分类阈值设为最大, 即把所有样例均预测为反例, 此时真正例率和假正例率均为0, 在坐标 ( 0 , 0 ) (0,0) (0,0)处标记一个点. 然后, 将分类阈值依次设为每个样例的预测值, 即依次将每个样例划分为正例. 设前一个标记点坐标为 ( x , y ) (x, y) (x,y), 当前若为真正例, 则对应标记点的坐标为 ( x + 1 m − , y ) (x+\frac1{m^-}, y) (x+m1,y), 然后用线段连接相邻点即得.

  进行学习器的比较时, 与 P-R 图相似, 若一个学习器的 ROC 曲线被另一个学习器的曲线完全 “包住”, 则可断言后者的性能优于前者; 若两个学习器的 ROC 曲线发生交叉, 较为合理的判据是比较 ROC 曲线下的面积, 即 AUC(Area Under ROC Curve).
AUC 可估算为
A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ⋅ ( y i + y i + 1 ) . AUC=\frac12\sum^{m-1}_{i=1}(x_{i+1}-x_i)\cdot(y_i+y_{i+1}). AUC=21i=1m1(xi+1xi)(yi+yi+1).
  形式化地看, AUC 考虑的是样本预测的排序质量, 因此它与排序误差有紧密联系. 给定 m + m^+ m+个正例和 m − m^- m个反例, 令 D + D^+ D+ D − D^- D分别表示正、反例集合, 则排序 “损失”(loss)定义为
l r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( I ( f ( x + ) < f ( x − ) ) + 1 2 I ( f ( x + ) = f ( x − ) ) ) , \Bbb l_{rank}=\frac1{m^+m^-}\sum_{x^+\in D^+}\sum_{x^-\in D-}\left(\Bbb I(f(x^+)<f(x^-))+\frac12\Bbb I(f(x^+)=f(x^-))\right), lrank=m+m1x+D+xD(I(f(x+)<f(x))+21I(f(x+)=f(x))),
即考虑每一对正、反例, 若正例的预测值小于反例, 则记一个 “罚分”, 若相等, 则记 0.5 0.5 0.5个 “罚分”. 容易看出, l r a n k \Bbb l_{rank} lrank对应的是 ROC 曲线之上的面积: 若一个正例在 ROC 曲线上对应标记点的坐标为 ( x , y ) (x,y) (x,y), 则 x x x恰是排序在其之前的反例所占的比例, 即假正例率. 因此有
A U C = 1 − l r a n k . AUC=1-\Bbb l_{rank}. AUC=1lrank.

2.3.4 代价敏感错误率与代价曲线

  为权衡不同类型错误所造成的不同损失, 可为错误赋予 “非均等代价”(unequal cost).

  以二分类任务为例, 我们可根据任务的领域知识设定一个 “代价矩阵”(cost matrix), 如表所示, 其中 c o s t i j cost_{ij} costij表示将第 i i i类样本预测为第 j j j类样本的代价. 一般来说, c o s t i i = 0 cost_{ii}=0 costii=0.
在这里插入图片描述
  在非均等代价下, 我们所希望的不再是简单地最小化错误次数, 而是希望最小化 “总体代价”(total cost). 若将表中的第 0 0 0类作为正类、第 1 1 1类作为反类, 令 D + D^+ D+ D − D^- D分别代表样例集 D D D的正例子集和反例子集, 则 “代价敏感”(cost-sensitive) 错误率为
E ( f ; D ; c o s t ) = 1 m ( ∑ x i ∈ D + I ( f ( x i ) ≠ y i ) × c o s t 01 + ∑ x i ∈ D − I ( f ( x i ) ≠ y i ) × c o s t 10 ) . E(f;D;cost)=\frac1m\left(\sum_{x_i\in D^+}\Bbb I(f(x_i)\not=y_i)\times cost_{01}+\sum_{x_i\in D^-}\Bbb I(f(x_i)\not=y_i)\times cost_{10}\right). E(f;D;cost)=m1(xiD+I(f(xi)=yi)×cost01+xiDI(f(xi)=yi)×cost10).
  在非均等代价下, ROC 曲线不能直接反映出学习器的期望总体代价, 而 “代价曲线”(cost curve) 则可达到该目的.代价曲线图的横轴是取值为 [ 0 , 1 ] [0,1] [0,1]的正例概率代价
P ( + ) c o s t = p × c o s t 01 p × c o s t 01 + ( 1 − p ) × c o s t 10 , P(+)cost=\frac{p\times cost_{01}}{p\times cost_{01}+(1-p)\times cost_{10}}, P(+)cost=p×cost01+(1p)×cost10p×cost01,

  其中 p p p是样例为正例的概率; 纵轴是取值为 [ 0 , 1 ] [0,1] [0,1]的归一化代价
c o s t n o r m = F N R × p × c o s t 01 + F P R × ( 1 − p ) × c o s t 10 p × c o s t 01 + ( 1 − p ) × c o s t 10 , cost_{norm}=\frac{FNR\times p\times cost_{01}+FPR\times (1-p)\times cost_{10}}{p\times cost_{01}+(1-p)\times cost_{10}}, costnorm=p×cost01+(1p)×cost10FNR×p×cost01+FPR×(1p)×cost10,
其中 F P R FPR FPR是假正例率, F N R = 1 − T P R FNR=1-TPR FNR=1TPR是假反例率.

  代价曲线的绘制: R O C ROC ROC曲线上每一个点对应了代价平面上的一条线段, 设 R O C ROC ROC曲线上点的坐标为 ( T P R , F P R ) (TPR,FPR) (TPR,FPR), 则可相应计算出 F N R FNR FNR, 然后在代价平面上绘制一条从 ( 0 , F P R ) (0,FPR) (0,FPR) ( 1 , F N R ) (1,FNR) (1,FNR)的线段, 线段下的面积即表示了该条件下的期望总体代价; 如此将 R O C ROC ROC曲线上的每个点转化为代价平面上的一条线段, 然后取所有线段的下界, 围成的面积即为在所有条件下学习器的期望总体代价, 如图所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值