模型的评估和选择之性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需 要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure)。

性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往 往会导致不同的评判结果;这意味着模型的"好坏"是相对的,什么样的模型 是好的?不仅取决于算法和数据,还决定于任务需求。

在预测任务中,给定样例集 D = {(X1,Y1) , (X2,Y2), . . . , (Xm, Ym)} , 其中Yi 是示例 Xi 的真实标记。要评估学习器 f 的性能,就要把学习器预测结果 f(x) 与真实标记Y进行比较。

回归任务最常用的性能度量是"均方误差" (mean squared error)。 


更一般的,对于数据分布 Ð 和概率密度函数 p(.) , 均方误差可描述为。


下面主要介绍分类任务中常用的性能度量。

错误率与精度

错误率和精度,这是分类任务中最常用的两种性能度量, 既适用于二分类任务,也适用于多分类任务。错误率是分类错误的样本数占样 本总数的比例,精度则是分类正确的样本数占样本总数的比例。对样例集 D , 分 类错误率定义为


精度则定义为


查准率、查全率与 Fl

错误率和精度虽常用,但并不能满足所有任务需求。以西瓜问题为例,假定 瓜农拉来一车西瓜,我们用训练好的模型对这些西瓜进行判别,显然,错误率衡 量了有多少比例的瓜被判别错误。但是若我们关心的是"挑出的西瓜中有多少 比例是好瓜",或者"所有好瓜中有多少比例被挑了出来 就不够用了,这时需要使用其他的性能度量。

类似的需求在信息检索、 Web搜索等应用中经常出现,例如在信息检索 中,我们经常会关心"检索出的信息中有多少比例是用户感兴趣的" "用 户感兴趣的信息中有多少被检索出来了","查准率"(precision)与"查全 率" (reall)是更为适用于此类需求的性能度量。

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划 分为真正例 (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 ,则难以一般性地断言 两者孰优孰劣,只能在具体的查准率或查全率条件下进行比较然而,在很多情 形下,人们往往仍希望把学习器 A 与 B 比出个高低 . 这时一个比较合理的判据 是比较 P-R 曲线节面积的大小,它在一定程度上表征了学习器在查准率和查全 率上取得相对"双高"的比例。但这个值不太容易估算, 因此, 人们设计了一些 综合考虑查准率 、 查全率的性能度量。

"平衡点 " (Break-Event Point,简称 BEP)就是这样一个度量,它是" 查 准率=查全率"时的取值3 例如图中学习器 C 的 BEP 是 0 .64,而基于 BEP 的比较,可认为学习器 A 优于 B 。

但 BEP 还是过于简化了些,更常用的是 F1 度量:


在一些应用中,对查准率和查全率的重视程度有所不同。例如在商品推荐 系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准 率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更 重要 。 F1 度量的一般形式——Fß, 能让我们表达出对查准率/查全率的不同偏 好,它定义为


其中 ß>O 度量了查全率对查准率的相对重要性 [Van Rijsbergen, 1979]. ß = 1 时退化为标准的 F1; ß> 1 时查全率有更大影响 ; ß< 1 时查准率有更大影响。

很多时候我们有多个二分类混淆矩阵,例如进行多次训练/测试,每次得到 一个混淆矩阵;或是在多个数据集上进行训练/测试,希望估计算法的"全局" 性能;甚或是执行多分类任务,每两两类别的组合都对应一个混淆矩阵, 总之,我们希望在 n 个二分类混淆矩阵上综合考察查准率和查全率。

一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率, 记为 (Pl, R1 ) , (P2, R2) ,"', (Pn , Rn) , 再计算平均值,这样就得到"宏查准 率" (macro-P) 、 "宏查全率" (macro-R) ,以及相应的"宏F1" (macro-F1):


还可先将各混淆矩阵的对应元素进行平均,得到 TP 、 FP 、 TN 、 FN 的 平均值,分别记为 TP、 FP 、 TN、 FN,再基于这些平均值计算出"微查准 率 "(micro-P) 、 "徽查全率" (micro-R)和"微F1" (micro-F1):



ROC 与 AUC

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与 一个分类阔值(threshold)进行比较,若大于阈值则分为正类,否则为反类。例 如,神经网络在一般情形下是对每个测试样本预测出一个 [0.0 ,1.0] 之间的实值, 然后将这个值与 0.5 进行比较,大于 0.5 则判为正例,否则为反例。这个实值或 概率预测结果的好坏,直接决定了学习器的泛化能力。实际上,根据这个实值或 概率预测结果,我们可将测试样本进行排序,"最可能"是正例的排在最前面, "最不可能"是正例的排在最后面。这样,分类过程就相当于在这个排序中以 某个"截断点" (cut point)将样本分为两部分,前一部分判作正例,后一部分则 判作反例。

在不同的应用任务中,我们可根据任务需求来采用不同的截断点,例如若 我们更重视"查准率",则可选择排序中靠前的位置进行截断;若更重视"查 全率",则可选择靠后的位置进行截断。因此,排序本身的质量好坏,体现了综 合考虑学习器在不同任务下的"期望泛化性能"的好坏,或者说"一般情况 下"泛化性能的好坏.。ROC 曲线则是从这个角度出发来研究学习器泛化性能 的有力工具。

ROC 全称是"受试者工作特征" (Receiver Operating Characteristic) 曲 线, 它源于"二战"中用于敌机检测的雷达信号分析技术,二十世纪六七十 年代开始被用于一些心理学、医学检测应用中,此后被引入机器学习领域 [Spackman, 1989]. 与前面介绍的 P-R 曲线相似,我们根据学习器的预 测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算 出两个重要量的值,分别以它们为横、纵坐标作图'就得到了 "ROC 曲线 与 P-R 曲线,使用查准率、查全率为纵、横轴不同, ROC 曲线的纵轴是"真正 例率" (True Positive Rate,简称 TPR),横轴是"假正例率" (False Positive Rate,简称 FPR) ,基于表中的符号,两者分别定义为


显示 ROC 曲线的图称为 "ROC 图",下图给出了一个示意图,显然 , 对角线对应于 "随机猜测" 模型,而点 (0, 1) 则对应于将所有正例排在所有反 例之前的"理想模型"。


现实任务中通常是利用有限个测试样例来绘制 ROC 图,此时仅能获得有 限个(真正例率,假正例率)坐标对,无法产生图中的光滑 ROC 曲线 , 只能 绘制出近似 ROC 曲线。绘图过程很简单:给定 m+ 个正例和 m-个反例,根据学习器预测结果对样例进行排序,然后把分类阔值设为 最大, 即把所有样例均预测为反例,此时真正例率和假正例率均为 0 , 在坐标 (0, 0) 处 标记一个点然后,将分类阐值依次设为每个样例的预测值,即依次将每个样例 划分为正例。设前一个标记点坐标为 (X, y) , 当前若为真正例,则对应标记点的 坐标为 (X , y+1/(m+) );当前若为假正例,则对应标记点的坐标为 (X+1/(m-), y) ,然 后用线段连接相邻点即得。

进行学习器的比较时, 与 P-R 图相似, 若一个学习器的 ROC 曲线被另 一 个学习器的曲线完全"包住", 则可断言后者的性能优于前者;若两个学习器 的 ROC 曲线发生交叉,则难以-般性地断言两者孰优孰劣 . 此时如果一定要进 行比较, 则较为合理的判据是 比较 ROC 曲线下 的面积,即 AUC (Area Under ROC Curve)。

从定义可知, AUC 可通过对 ROC 曲 线下各部分的面积求和而得 . 假 定 ROC 曲线是由坐标为 {(Xl , yl), (X2,Y2) ,. . ., (xm,Ym)} 的点按序连接而形 成(Xl =0, x m = 1) ; 参见图,则 AUC 可估算为


形式化地看, AUC 考虑的是样本预测的排序质量,因此它与排序误差有紧 密联系.给定 m+个正例和 m-个反例,令 D+ 和 D-分别表示正、反例集合, 则排序"损失" (loss)定义为


即考虑每一对正、反例,若正例的预测值小于反例,则记一个"罚分",若相 等,则记0.5 个"罚分"容易看出 , l.rαnk 对应的是 ROC 曲线之上的面积:若 一个正例在 ROC 曲线上对应标记点的坐标为 (X , y) , 则 z 恰是排序在其之前的 反例所占的比例?即假正例率。因此有


参考书籍:——周志华<机器学习>


猜你喜欢

转载自blog.csdn.net/qq_36421826/article/details/80941197
今日推荐