2.3性能度量(performance measure)
性能度量时衡量模型泛化能力的评价标准。性能度量反映了任务需求。什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。
2.3.1错误率与精度
错误率是分类错误的样本数占样本总数的比例,精度则是分类正确的样本数占样本总数的比例。对样例D,
分类错误率定义为
精度则定义为:
更一般的,对于数据分布D和概率密度函数p(.),错误率与精度可分别描述为
2.3.2查准率、查全率与F1
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反比例(false negative)四种情形,令TP、FP、TN、FN分别表示其对应的样例书,则显然有TP+FP+TN+FN=样例总数。分类结果的“混淆矩阵“(confusion matrix)如下表所示
查准率P和查全率R分别定义为
一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
很多情形下,我们可根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能“是正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本,按此顺序逐个吧样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称“P-R曲线”,显示该曲线的图称为“P-R图” 。
P-R图直观的显示出学习器在样本总体上的查全率、查准率。对两个学习器进行比较时,若一个学习器的P-R曲线被另一个学习器的曲线完全包含在内,则后者性能优于前者,例如上图中A优于C,如果两个学习器的P-R曲线发生了交叉例如图中的A与B一般比较P-R曲线下面积的大小,但是这个值不容易估算。人们利用“平衡点”(Break-Event Point简称BEP)来进行度量,它是“查准率=查全率”时的取值,例如图2.3中的学习器C的BEP时0.64基于BEP的比较可认为学习器A优于B。
由于BEP过于简化,更常用的是F1度量
在一些应用中,对查准率和查全率的重视程度不同,用F1度量的一般形式-Fβ,能表达出对查准率/查全率的不同偏好
其中β>0度量了查全率对查准率的相对重要性β=1时退化为标准的F1,;β>1时查全率有更大影响;β<1时查准率有更大影响。
当我们希望在n个二分类混淆矩阵上综合考察查准率和查全率时一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率,记为(P1,R1),(P2,R1),…,(Pn,Rn),再计算平均值,这样就得到“宏查准率”(macro-P)、“宏查全率”(macro-R),以及相应的“宏F1”(macro-F1):
还可先将各混淆矩阵的对应元素进行平均,得到TP,FP,TN,FN的平均值,再基于这些平均值计算得出“微查准率”(micro-P)、“微查全率”(micro-R)和“微F1”(micro-F1):
2.3.3ROC与AUC
很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分类正类,否则为反类。这个实值或概率预测结果的好坏,直接决定了学习器的泛化能力。实际上,根据这个实值或概率预测结果,我们可将测试样本进行排序,“最可能”是正例的排在最前面,“最不可能”是正例的排在最后面。这样分类过程就相当于在这个排序中以某个“截断点”(cut point)的样本分为两部分,前一部分判作正例,后一部分判作反例。若更重视“查准率”则可选择排序中靠前的位置进行阶段;若更重视“查全率”,则可选择排序中靠后的位置进行截断。排序质量的好坏体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏。ROC曲线则是从这个角度来研究学习器泛化性能的有力工具。
ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,根据学习器测量结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以他们为横、纵坐标作图,ROC的纵轴是“真正例率”(True Positive Rate,简称TPR),横轴是“假正例率”(False Positive Rate,简称FPR),两者分别定义为
显示ROC曲线的图称为“ROC图”,图2.4(a)给出了一个示意图,显然对角线对应于“随机猜测”模型,而点(0,1)则对应于所有正例排在所有反例之前的“理想模型”。
现实中用有限个测试样例来绘制ROC图,仅能获得如图2.4(b)中的近似ROC曲线,绘图过程如下:给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点。然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例,设前一个标记点坐标为(x,y)若为正例,则对应标记点的坐标为(x,y+1/m+);当前若为假正例,则对应标记点的值为(x+1/m-,y),然后用线段连接相邻点即得。
若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者性能优于前者,若二者交叉,需要另行比较,较合理的判据是比较ROC曲线下的面积,即AUC(AreaUnder ROC Curve),如图2.4所示。
AUC被定义为ROC曲线下的面积,AUC可估算为
AUC考虑的是样本预测的排序质量,它与排序误差有紧密联系,给定m+个正例和m-个反例,令D+和D-分别表示正反例集合,则排序“损失”(loss)定义为
即考虑每一对正反例,若正例的预测值小于反例,则记一个“罚分”,若相等则记0.5个“罚分”。容易看出 对应的是ROC曲线之上的面积;若一个正例在ROC曲线上对应标记点的坐标为(x,y),则x恰是排序在其之前的反例所占的比例,即假正例率(因为x=x+1/m-),因此有
2.3.4代价敏感错误率与代价曲线
不同的错误所造成的结果不同,为权衡不同类型的错误所造成的不同损失,可为错误赋予“非均等代价”(unequal coast)。
以二分类任务为例,可以根据任务的领域知识设定一个“代价矩阵”(cost matrix),如表2.2所示,其中costij表示将第i类样本预测为第j类样本的代价,一般来说costii=0;若将第0类判别为第1类所造成的损失更大,则cost01>cost10;损失程度相差越大cost01与cost10值的差别越大
在非均等代价下,我们希望的不再是简单的最小化错误次数,而是希望最小化“总体代价”(totalcost)。若将表2.2中的第0类作为正类,第1类作为反类,令D+与D-分别代表样例集D的正例子集和反例子集,则“代价敏感”(cost-sensitive)错误率为
非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”(cost curve)则可达到该目的。代价曲线图的横轴是取值为[0,1]的正例概率代价:
其中p是样例为正例的概率;纵轴是取值为[0,1]的归一化代价
其中FPR是假正例率,FNR=1-TPR是假反例率。代价曲线的绘制:ROC曲线上每一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价,如图2.5所示: