性能度量
对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure)
性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这意味着模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。
在预测任务中,要评估学习器f的性能,就要把学习器预测结果f(x)与真实标记y进行比较。回归任务最常用的性能度量是“均方误差”
错误率与精度
错误率与精度是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务。
查准率、查全率与F1
以西瓜问题为例,假定瓜农拉来一车西瓜,我们用训练好的模型对这些西瓜进行判别,显然,错误率衡量了有多少比例的瓜被判别错误。但是若我们关心的是“挑出的西瓜中有多少比例是好瓜”,或者“所有好瓜中有多少比例被挑了出来”,那么错误率显然不够用了。类似的,在信息搜索中,我们经常会关心“检索出的信息中有多少比例是用户感兴趣的”“用户感兴趣的信息中有多少被检索出来了”
查准率(precision)与“查全率”(recall) 是更为适用于此类需求的性能度量。它们是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使查全率和查准率都很高。
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例、假正例、真反例、假反例。我们可根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本。按此顺序逐个把样本作为正例进行预测,每次可以计算出当前的查全率、查准率。以查准率为纵轴,查全率为横轴作图,就得到查准率-查全率曲线,简称“P-R曲线”。P-R图直观显示出学习器在样本总量上的查全率、查准率。若一个学习器的P-R图曲线被另一个学习器曲线完全“包住”,则可断言后者优于前者。如果两条曲线交叉,则“平衡点”(Break-Even Point,简称BEP)可用来度量,它是“查准率=查全率”时的取值,但BEP还是过于简化了,更常用的是F1度量(F1是基于查准率与查全率的调和平均)。
一些应用中,对查准率与查全率的重视程度有所不同,F1度量的一般形式——Fβ能让我们表示对二者的不同偏好,当β>1时查全率有更大影响,当β<1是查准率有更大影响。
ROC与AUC
在不同的应用任务中,我们可根据任务需求来采用不同的截断点将样本分为两部分,前一部分判作正例,后一部分判作反例。例如若更重视查准率,可选择排序中靠前的位置进行截断;若更重视查全率,可选择靠后的位置进行截断。因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说,“一般情况下”泛化性能的好坏。ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具。
ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线。与P-R曲线相似,我们根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了ROC曲线。ROC曲线的纵轴是“真正例率”,横轴是“假正例率”。若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者。若两个学习器的曲线相交,比较合理的判断是比较ROC曲线下的面积,即AUC(Area Under ROC Curve)。
代价敏感错误率与代价曲线
现实任务中经常会遇到不同类型的错误造成的后果不同。为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”。
前面介绍的一些性能度量大都隐式地假设了均等代价,在非均等代价下,我们所希望的不再是简单地最小化错误次数,而是希望最小化“总体代价”。在非均等代价下,ROC曲线不能直接反映出现学习器的期望总体代价,而“代价曲线”则可达到该目的,代价曲线图的横轴是取值为[0,1]的正例概率代价,纵轴是取值为[0,1]的归一化代价。(规范化(normalization)是将不同变化范围的值映射到相同的固定范围中,常见的是[0,1],此时亦称“归一化”)