对学习器的泛化性能的评估,不仅需要有效可行的试验评估方法,还需要有模型泛化能力的评价标准,这就是性能度量 (performance measure),性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果,这意味着模型的 "好坏" 是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求.
在预测任务中,给定样例集 D={(x1,y1),(x2,y2),......,(xm,ym)},其中 yi 是示例 xi 的真是标记,要评估学习器 f 的性能,就要把学习器预测结果 f(x) 与真实标记 y 进行比较,回归任务最常用的性能度量是 "均方误差"(mean squared error):
更一般的,对于数据分布 D 和概率密度函数 p(•),均方误差可描述为:
下面以分类任务为例讨论常用的性能度量.
错误率与精度
错误率和精度是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务,错误率是分类错误的样本数占样本总数的比例,精度则是分类正确的样本数占样本总数的比例,对样例集 D,分类错误率定义为:
精度定义为:
更一般的,对于数据分布 D 和概率密度函数 p(•),错误率和精度可分别描述为:
查准率,查全率与 F1
错误率和精度虽常用,但 并不能满足所有任务需求,以西瓜问题为例,假定瓜农拉来一车西瓜,我们用训练好的模型对这些西瓜进行判别,显然,错误率衡量有多少比例的西瓜被判别错误,但是若我们关心的是 "挑出的西瓜中有多少比例是好瓜",或者 "所有好瓜中有多少比例被挑了出来",那么错误率显然就不够用了,这是需要使用其他的性能度量,类似的需求在信息检索,web 搜索等应用中经常出现,例如在信息检索中,我们经常会关心 "检索出的信息中有多少比例是用户感兴趣的","用户感兴趣的信息中有多少被检索出来了"."查准率" 与 "查全率" 是更为实用与此类需求的性能度量.
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例 (true positive),假正例(false positive),真反例(true negative),假反例(false negative) 四种情形,令 TP,FP,TN,FN 分别表示其对应的样例数,则显然有 TP+FP+TN+FN = 样例总数,分类结果的 "混淆矩阵":
真实情况 预测结果
正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)
查准率 P 与查全率 R 分别定义为:
查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低,而查全率高时,查准率往往偏低.通常只有在一些简单任务中,才可能使查全率和查准率都很高.
我们可以根据学习器的预测结果对样例进行排序,排在前面是学习器认为 "最可能" 是正例的样本,排在最后的则是学习器认为 "最不可能" 是正例的样本,按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率,查准率.以查准率为纵轴,查全率为横轴作图,就得到查准率 - 查全率曲线,简称 "P-R 曲线",显示该曲线的图称为 "P-R 图":
P-R 图直观地显示出学习器在样本总体上的查全率,查准率.在进行比较时,若一个学习器的 P-R 曲线被另一个学习器的曲线完全 "包住",则可断言后者的性能优于前者,例如上图中学习器 A 的性能优于学习器 C,如果两个学习器的 P-R 曲线发生了交叉,例如上图中的 A 和 B,则难以一般性的断言哪个更优,只能在具体的查准率或者查全率条件下进行比较,然而很多情形下,人们往往仍希望把学习器 A 和 B 比个高低,这时一个比较合理的判据是比较 P-R 曲线下面积的大小,它在一定程度上表征了学习器在查准率和查全率上取得相对 "双高" 的比例,但这个值不太容易估算,因此人们设计了一些综合考虑查准率,查全率的性能度量:
平衡点 (Break-Event Point,简称 BEP):"查准率 = 查全率" 时的取值.例如上图中基于 BEP 的比较,可认为学习器 A 优于 B.
但是 BEP 还是过于简化了些,更常用的是 F1 度量:
F1 度量的一般形式——Fß,能让我们表达出对查准率 / 查全率的不同偏好:
其中 ß>0 度量了查全率对查准率的相对重要性,ß=1 时退化为标准的 F1,ß>1 时查全率有更大影响,ß<1 时查准率有更大影响.
如果我们进行多次训练 / 测试,或者在多个数据集上进行训练 / 测试,我们希望估计算法的 "全局性能",甚或者执行多分类任务,每两两类别的组合都对应一个混淆矩阵,那么就会得到多个混淆矩阵,我们希望在 n 个二分类混淆矩阵上综合考虑查准率和查全率,一种直接的方法是先在各混淆矩阵上分别计算出查准率和查全率,记为 (P1,R1),(P2,R2),......,(Pn,Rn),再计算平均值,这样就得到 "宏查准率"(macro-P),"宏查全率"(macro-R),以及相应的 " 宏 F1"(macro-F1):
还可以先将混淆矩阵的对应元素进行平均,得到 TP,FP,TN,FN 的平均值,分别记为,再基于这些平均值计算出 "微查准率"(micro-P),"微查全率"(micro-R) 和 " 微 F1"(micro-F1):
ROC 和 AUC
很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,大于阈值则分为正类,否则为反类,这个实值或概率预测结果的好坏直接决定了学习器的泛化能力,实际上,我们可以根据这个实值或概率预测结果将测试样本进行排序,"最可能" 是正例排在最前面,"最不可能" 是正例的排在最后面,这样,分类过程就相当于在这个排序中以某个 "截断点"(cut point) 将样本分为两部分,前一部分判为正例,后一部分则判为反例,在不同的应用任务中,我们可根据任务需求来采用不同的截断点,例如我们更重视 "查准率",则可选择排序中靠前的位置进行截断,若更重视 "查全率",则可选择更靠后的位置进行截断,因此排序质量的好坏体现了综合考虑学习器不同任务下的 "期望泛化性能" 的好坏,ROC 曲线则是从这个角度出发来研究学习器泛化性能的有力工具.
ROC:Receiver Operating Characteristic(受试者工作特征) 曲线,以 "真正例率"(True Positive Rate,简称 TPR) 为纵轴,以 "假正例率"(False Positive Rate,简称 FPR) 为横轴:
显示 ROC 曲线的图称为 "ROC 图",下图 (a) 给出了一个示意图,显然,对角线对应于 "随机猜测" 模型,而点 (0,1) 则对应于将所有正例排在所有反例之前的 "理想模型".
现实任务中通常是利用有限个测试样例来绘制 ROC 图,此时仅能获得有限个 (真正例率,假正例率) 坐标对,无法产生上图 (a) 中的光滑 ROC 曲线,只能绘制上图 (b) 中所示的近似 ROC 曲线.进行学习器比较时,与 P-R 图相似,若一个学习器的 ROC 曲线被另一个学习器的曲线完全 "包住",则可断言后者的性能优于前者,若两个学习器的 ROC 曲线发生交叉,则难以比较,此时如果一定要进行比较,比较合理的判据是比较 ROC 曲线下的面积,即 AUC(Area Under ROC Curve),如上图所示.
从定义可知,AUC 可通过对 ROC 曲线下各部分的面积求和而得,假定 ROC 曲线是由坐标为 {(x1,y1),(x2,y2),......,(xm,ym)} 的点按序链接而形成 (x1=0,xm=1),参见上图 (b),则 AUC 可估算为:
形式化地看,AUC 考虑的是样本预测的排序质量,因此它与排序误差有紧密联系,给定 m+ 个正例和 m- 个反例,令 D+ 和 D- 分别表示正,反例集合,则排序 "损失"(loss) 定义为:
即考虑每一对正,反例,若正例的预测值小于反例,则记一个 "罚分",若相等,则记 0.5 个 "罚分",很容易看出 lrank 对应的是 ROC 曲线之上的面积:若一个正例在 ROC 曲线上对应标记点的坐标为 (x,y),则 x 恰是排序在其之前的反例所占的比例,即假正例率,因此有:AUC=1-lrank.
代价敏感错误率与代价曲线
在现实任务中,不同类型的错误所造成的后果可能不同,为权衡不同类型错误所造成的不同损失,可为错误赋予 "非均等代价",以二分类为例,我们可以根据任务的领域知识设定一个 "代价矩阵",如下表所示,其中 costij 表示将第 i 类样本预测为第 j 类样本的代价,一般来说,costii=0,若将第 0 类判别为第 1 类所造成的损失更大,则 cost01>cost10,损失程度相差越大,cost01 与 cost10 值的差别越大.
真实类别 预测类别
第 0 类 第 1 类
第 0 类 0 cost01
第 1 类 cost10 0
前面我们都隐式地假设了均等代价,并没有考虑不同错误会造成不同的后果,在非均等代价下,我们所希望的不再是简单地最小化错误次数,而是希望最小化 "总体代价",若将第 0 类作为正类,第 1 类作为反类,令 D+ 与 D- 分别代表样例集 D 的正例子集和反例子集,则 "代价敏感" 错误率为:
类似可给出基于分布定义的代价敏感错误率以及其他一些性能度量,如精度的代价敏感版本,若令 costij 中的 i,j 取值不限于 0,1,则可定义出多分类任务的代价敏感性能度量.在非均等代价下,ROC 曲线不能直接反映出学习器的期望总体代价,而 "代价曲线"(cost curve)则可达到目的,代价曲线图的横轴是取值为 [0,1] 的正例概率代价:
其中 p 是样例为正例的概率,纵轴是取值为 [0,1] 的归一化代价:
其中 FPR 是假正例率,FNR=1-FPR 是假反例率,代价曲线所围成的面积即为在所有条件下学习器的期望总体代价,如下图所示:
来源: https://www.cnblogs.com/earthhouge/p/8287721.html