3. 性能度量
监督学习的性能度量
性能度量:衡量泛化能力的评价标准
性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果。模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。
在预测任务中,给定样例集D = {(x1, y1), (x2, y2),......, (xm, ym)}, 其中 yi是示例xi的真实标记,要评估学习器f的性能,需要将学习器的预测结果f(x)同真实标记y进行比较
回归任务的性能度量
均方误差:
离散样本的均方误差
更一般的,对于数据分布Ɗ和概率密度p(·),均方误差的可描述为:
连续样本的均方误差
3.1 错误率与精度
错误率:分类错误的样本数占样本总数的比例
例如:m个样本中有a个样本分类错误,则错误率为 E=a/m
精度:分类正确的样本数占样本总数的比例。即:精度=1-错误率
例如:m个样本中有m-a个样本分类正确,则精度 A=(m-a)/m=1-E
对样例集D,错误率定义为
离散样例的错误率
精度定义为
离散样例的精度
更一般的,对于数据分布Ɗ和概率密度p(·),错误率与精度可分别描述为:
连续样例的错误率
连续样例的精度
3.2 查准率、查全率与F1
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(TP)、假正例(FP)、真反例(TN)、假反例(FN)四种情形。
TP + FP +TN + FN = 样例总数
分类结果混淆矩阵
查准率P:真正例样本数/预测结果是正例的样本数
查准率P
例如:瓜农拉来一车西瓜,挑出来的西瓜有多少比例是好瓜
查全率:真正例样本数/真实情况是正例的样本数
查全率R
例如:瓜农拉来一车西瓜,所有好瓜中有多少比例被挑了出来
查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单的任务中,才有可能是查全率和查准率都很高。
例如:若希望将好瓜尽可能多的选出来,则可通过增加选瓜的数量,如果将所有西瓜都选上,那么所有的好瓜也必然选上,但是这时查准率就会比较低。若希望选出的瓜中好瓜比例尽可能高,则可只挑选最有把握的瓜,但是这样就会漏掉不少好瓜,使得查全率较低。
我们可以根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后的是学习器认为“最不可能”是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。以查准率做纵轴、查全率做横轴作图,就得到了查准率-查全率曲线,简称“P-R曲线”。
P-R曲线与平衡点示意图
基于P-R曲线的学习器性能评价规则
1. 当曲线没有交叉的时候:外侧曲线的学习器性能优于内侧;
例如:学习器A的性能优于学习器C
2. 当曲线有交叉的时候:
1)、比较P-R曲线下面积,它在一定程度上表征了查全率和查准率取得相对“双高”的比例,但这个值不太容易估算;
2)、比较两条曲线的平衡点(Break-Event Point, 简称BEP),平衡点是“查准率=查全率”时的取值,BEP越大,性能越优。
例如:基于BEP的比较,可以认为学习器A优于学习器B
3)、BEP过于简化,更常用的F1度量和Fβ度量。
F1是基于查准率与查全率的调和平均定义的,Fβ则是加权调和平均
查准率与查全率的调和平均
F1度量的一般形式Fβ
查准率与查全率的加权调和平均
β > 0 度量了查全率对查准率的相对重要性。
β = 1 时退化为标准的F1;β > 1 时查全率有更大影响;β < 1 时查准率有更大影响。
很多时候我们有多个二分类混淆矩阵,我们希望在n个二分类混淆矩阵上综合考虑查准率和查全率。
例如:进行多次训练/测试,每次得到一个混淆矩阵;或是在多个数据集上进行训练/测试,需希望估计算法的“全局性能”;甚或是执行多分类任务,每两两类别的组合都对应一个混合矩阵。
1)、先在各个混淆矩阵中分别计算出查准率查全率,再计算平均值,这样就得到“宏查准率”(macro-P)、“宏查全率”(macro-R)以及“宏F1”(macro-F1)。
macro-P、macro-R以及macro-F1
(micro-P)
micro-R和micro-F1
3.3 ROC与AUC
根据实值或概率预测结果,我们可以将测试样本进行排序,“最可能”是正例的排在前面,“最不可能”是正例的排在最后面。分类过程相当于在这个排序中以某个“截断点”将样本分为两个部分,前一部分判做正例,后一部分则判作反例。
在不同的应用任务中,我们可根据任务需求来采用不同的截断点。
例如:若我们更重视查准率。则可选择排序靠前的位置进行截断;若更重视查全率,则可选择靠后的位置进行截断。
排序本身质量的好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说“一般情况下”泛化性能的好坏。ROC曲线则是从排序本身质量的好坏的角度来研究学习器泛化性能。
ROC全名“受试者工作特征”曲线,以“真正例率”为纵轴,以“假正例率”为横轴。
真正例率TPR:真正例样本数/真实情况是正例的样本数(查全率)
TPR
假正例率FPR:假正例样本数/真实情况是是反例的样本数
FPR
ROC曲线的绘制过程:给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和反正例率均为0,在坐标(0,0)处标记一个点。然后将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/m+);当前若为假正例,则对应标记的坐标为(x+1/m-,y),然后用线段连接相邻点即得。
ROC曲线与AUC示意图
现实任务中通常利用有限个测试样例来绘制ROC图,此时仅能获得有限个坐标,无法产生(a)中的ROC曲线,只能产生(b)中的ROC曲线。
基于ROC曲线的学习器性能评价规则
1. 当曲线没有交叉的时候:外侧曲线的学习器性能优于内侧;
2. 当曲线有交叉的时候:比较ROC曲线下的面积即 AUC (Area Under ROC Curve)
AUC可估算为
AUC估算公式
形式化的看,AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。
给定m+个正例和m-个反例,令D+和D-分别表示正、反例集合,则排序的损失定义为
排序的损失定义
即考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5个“罚分”。容易看出,对应的是ROC曲线之上的面积:若一个正例在ROC曲线上对应标记点的坐标为(x,y),则x恰是排序在其之前的反例所占的比例,即假正例率。因此有
AUC
3.4 代价敏感错误率与代价曲线
前面介绍的性能度量,大都隐式地假设了不同类型的错误造成的后果相同,但是在现实任务中经常遇到不同类型的错误造成的后果不同的情况。
例如:在医疗诊断中,错误地把患者诊断为健康人与错误的把健康人诊断为患者,前者的后果可能是错失医治的最佳时机,而后者只是增加了进一步检查的麻烦。
为权衡不同类型的错误所造成的不同损失,可为错误赋予“非均等代价”。
以二分类代价矩阵为例,我们可根据任务领域知识设定一个“代价矩阵”。
二分类代价矩阵
“代价敏感错误率”为
代价敏感错误率
类似的,可给出基于分布定义的代价敏感错误率,以及其他一些性能度量,如精度代价敏感版本。对于多分类任务同样也可以定义出代价敏感性能度量。
在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”则可以达到目的。代价曲线的横轴是正例概率代价P(+)cost,纵轴是归一化代价cost_norm
P(+)cost
其中,p是样例为正例的概率
cost_norm
其中,FPR是假正例率,FNR = 1 - TPR
代价曲线的绘制过程:ROC曲线上的每一个点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价。如此将ROC上的每个点转化为代价平面上的一个线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。
代价曲线与期望总体代价
领取专属 10元无门槛券
私享最新 技术干货