- 衡量模型泛化能力的评价标准
- 反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这意味着模型的"好坏"是相对的,什么样的模型是好的,不仅取决于算法和数据,还取决于任务需求
-
在预测任务中,给定样例集D={(x1,y1),(x2,y2),…,(xm,ym)},其中yi是示例xi的真实标记。要评估学习器f的性能,就要把学习器预测结果f(x)与真实标记y进行比较。
-
回归任务最常用的性能度量是"均方误差"(mean squared error)
E(f;D)=m1∑i=1m(f(xi)−yi)2
更一般的,对于数据分布D和概率密度函数p(⋅),均方误差描述为:
E(f;D)=∫x∽D(f(x)−y)2p(x)dx
3.1 错误率与精度
分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务
- 错误率:分类错误的样本数占样本总数的比例
- 精度:分类正确的样本数占样本总数的比例
-
对样例集D,分类错误率定义为:
E(f;D)=m1∑i=1mI(f(xi)=yi)
精度定义为:
acc(f;D)=m1∑i=1mI(f(xi)=yi)=1−E(f;D)
-
更一般的,对于数据分布D和概率密度函数p(⋅),错误率与精度可分别描述为
E(f;D)=∫x∽DI(f(x)=y)p(x)dx
acc(f;D)=∫x∽DI(f(x)=y)p(x)dx=1−E(f;D)
3.2 查准率、查全率与F1
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形,令TP、FP、TN、FN分别表示其对应的样例数,则显然有TP+FP+TN+FN=样例总数。分类结果的混淆矩阵(confusion matrix)如下表所示
分类结果混淆矩阵
真实情况 |
预测结果 |
正例 |
反例 |
正例 |
TP(真正例) |
FN(假反例) |
反例 |
FP(假正例) |
TN(真反例) |
-
查准率(precision)P:真正例在预测结果中正例的比例,公式为:
P=TP+FPTP
-
查全率(recall)R:真正例在真实情况中正例的比例,公式为:
R=TP+FNTP
- 查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使查全率和查准率都很高
- P−R 曲线
根据学习器的预测结果对样例进行排序,排在前面的是学习器认为"最可能"是正例的样本,排在最后的则是学习器认为"最不可能"是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次每次可以计算出当前的查全率、查准率。以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称"P−R曲线"
- 在进行比较时,当一个学习器的P−R曲线被另一个学习器的曲线完全"包住",则可断言后者的性能优于前者;如果两个学习器的P−R曲线发生了交叉,则难以一般性地断言两者孰优孰劣,只能在具体的查准率或查全率条件下进行比较。
- 平衡点(Break-Even Point)
综合考虑查准率和查全率的性能度量,即"查准率=查全率"时的取值
- F1度量
综合考虑查准率和查全率的性能度量,表达式为:
F1=P+R2×P×R=样例总数+TP−TN2×TP
- 基于查准率与查全率的调和平均定义的:F11=21(P1+R1)
① F1度量的一般形式--Fβ
- Fβ是基于查准率与查全率的加权调和平均定义的:Fβ1=1+β21(P1+Rβ2)
- 能表达出对查准率/查全率的不同偏好
- 定义为:
Fβ=(β2×P)+R(1+β2)×P×R
- 其中β>0度量了查全率对查准率的相对重要性。
- β=1时退化为标准的F1
- β>1时查全率有更大影响
- β<1时查准率有更大影响
② 基于n个二分类混淆矩阵上综合考察查准率和查全率
二分类混淆矩阵来源:
- 进行多次训练/测试,每次得到一个混淆矩阵
- 在多个数据集上进行训练/测试,估计算法的全局性能
- 执行多分类任务,每两两类别的组合都对应一个混淆矩阵
- 宏F1(macro-F1)
先在各混淆矩阵上分别计算出查准率和查全率,记为(P1,R1),(P2,R2),…,(Pn,Rn),再计算平均值,这样就得到宏查准率(macro-P)、宏查全率(macro-R)、以及相应的宏F1
macro−P=n1∑i=1nPi
macro−R=n1∑i=1nRi
macro−F1=macro−P+macro−R2×macro−P×macro−R
- 微F1(micro-F1)
先将各混淆矩阵对应元素进行平均,得到TP、FP、TN、FN的平均值,分别记为TPˉ、FPˉ、TNˉ、FNˉ,再基于这些平均值计算出微查准率(micro-P)、微查全率(micro-R)、以及相应的微F1
micro−P=TPˉ+FPˉTPˉ
micro−R=TPˉ/(TPˉ+FNˉ)
micro−F1=micro−P+micro−R2×micro−P×micro−R
3.3 ROC与AUC
- 很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类,否则为反类。这个实值或预测结果的好坏,直接决定了学习器的泛化能力。
- 实际上,根据这个实值或概率预测结果,可将测试样本进行排序,"最可能"是正例的排在最前面,"最不可能"是正例的排在最后面。这样,分类过程就相当于在这个排序中以某个"截断点"(cut point)将样本分为两部分,前一部分判作正例,后一部分则判作反例。
- 在不同的应用任务中,可根据任务需求来采用不同的截断点。若更重视"查准率",则可选择排序中靠前的位置进行截断,若更重视"查全率",则可选择靠后的位置进行截断。因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的"期望泛化性能"的好坏,或者说,"一般情况下"泛化性能的好坏。
1. ROC曲线
- 从排序本身的质量好坏来研究学习器泛化性能的有力工具
- 全称"受试者工作特征"(Receiver Operating Characteristic)曲线
- 与P−R曲线相似,根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图。ROC曲线的纵轴为"真正例率"(True Positive Rate,简称TPR),横轴是"假正例率"(False Positive Rate,简称FPR)
- 真正例率TPR: 真正例占真实情况中正例的比例
计算公式:TPR=TP+FNTP
- 假正例率FPR: 假正例占真实情况中反例的比例
计算公式:FPR=TN+FPFP
-
绘图过程:
给定m+个正例和m−个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0, 0)处标记一个点。然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x, y),当前若为真正例,则对应标记点的坐标为(x,y+m+1),若为假正例,则对应标记点的坐标为(x+m−1,y),然后用线段连接相邻点即得。
-
进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全"包住",则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性地断言孰优孰劣。
2. AUC(Area Under ROC Curve)
通过比较ROC曲线下的面积来比较学习器的性能
-
假定ROC曲线是由坐标为{(x1,y1),(x2,y2),…,(xm,ym)}的点按序连接而形成(x1=0,xm=1),则AUC可估算为:
AUC=21∑i=1m−1(xi+1−xi)⋅(yi+yi+1)
-
AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。给定m+个正例和m−个反例,令D+和D−分别表示正、反例集合,则排序"损失"(loss)定义为:
lrank=m+m−1∑x+∈D+∑x−∈D−(I(f(x+)<f(x−)+21I(f(x+)=f(x−)))
即考虑每一对正、反例,若正例预测值小于反例,则记一个"罚分",若相等,则记0.5个"罚分"。容易看出,lrank对应的是ROC曲线之上的面积:若一个正例在ROC曲线上对应标记点的坐标为(x,y),则x恰是排序排序在其之前的反例所占的比例,即假正例率。因此有:
AUC=1−lrank