机器学习西瓜书笔记---2.3、模型评估与选择【2.3性能度量】

一、总结

一句话总结:

【重点】别【圈】太多,圈太多重点就不是重点了,效果【反而不好】

 

1、2.3性能度量的意义是什么?

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

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

 

2、【回归任务】最常用的性能度量是【“均方误差”(mean squared error)】?

“【均】方误差”(【mean】 squared error):$$E ( f ; D ) = \frac { 1 } { m } \sum _ { i = 1 } ^ { m } ( f ( x _ { i } ) - y _ { i } ) ^ { 2 }$$

对于数据分布D和概率密度函数p(·),【均】方误差可描述为:$$E ( f ; D ) = \int _ { x \sim D } ( f ( x ) - y ) ^ { 2 } p ( x ) d x$$

 

3、错误率和精度虽常用,但并不能满足所有任务需求?

以西瓜问题为例,假定瓜农拉来一车西瓜,我们用训练好的模型对这些西瓜进行判别,显然,错误率衡量了有多少比例的瓜被判别错误.但是若我们关心的是“挑出的西瓜中有多少比例是好瓜”,或者“所有好瓜中有多少比例被挑了出来”,那么【错误率显然就不够用了】,这时需要使用其他的性能度量.

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

查准率亦称“准确率”,查全率亦称【“召回率”】.

 

4、“P-R曲线”?

在很多情形下,我们可【根据学习器的预测结果对样例进行排序】,排在前面的是学习器认为“最可能”是正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本.按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率.【以查准率为纵轴、查全率为横轴作图】,就得到了查准率-查全率曲线,简称“P-R曲线”,显示该曲线的图称为“P-R图”

为绘图方便和美观,示意图显示出单调平滑曲线;但【现实任务中的P-R曲线常是非单调、不平滑的】,在很多局部有上下波动.

 

 

5、综合考虑查准率、查全率的性能度量?

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

但BEP还是过于简化了些,更常用的是F1度量:F1是【基于查准率与查全率的调和平均(harmonic mean)】定义的:$$\frac { 1 } { F 1 } = \frac { 1 } { 2 } \cdot ( \frac { 1 } { P } + \frac { 1 } { R } )$$

F1度量的一般形式一Fbeta,能让我们表达出【对查准率/查全率的不同偏好】:$$\frac { 1 } { F _ { \beta } } = \frac { 1 } { 1 + \beta ^ { 2 } } \cdot ( \frac { 1 } { P } + \frac { \beta ^ { 2 } } { R } )$$

 

 

6、为什么有Fbeta?

在一些应用中,对查准率和查全率的重视程度有所不同.例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,【此时查准率更重要】;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,【此时查全率更重要】.

F1度量的一般形式一Fbeta,能让我们表达出【对查准率/查全率的不同偏好】:$$\frac { 1 } { F _ { \beta } } = \frac { 1 } { 1 + \beta ^ { 2 } } \cdot ( \frac { 1 } { P } + \frac { \beta ^ { 2 } } { R } )$$

 

7、根据这个实值或概率预测结果,我们可将测试样本进行【排序】?

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个【分类阈值(threshold)】进行比较,若大于阀值则分为正类,否则为反类.例如,神经网络在一般情形下是对每个测试样本预测出一个[0.0,1.0]之间的实值,然后将这个值与0.5进行比较,【大于0.5则判为正例,否则为反例】.

这个实值或概率预测结果的好坏,直接决定了学习器的泛化能力.实际上,根据这个实值或概率预测结果,我们可将测试样本进行排序,【“最可能”是正例的排在最前面,“最不可能”是正例的排在最后面】.这样,分类过程就相当于在这个排序中以某个“截断点”(cut point)将样本分为两部分,前一部分判作正例,后一部分则判作反例.

在不同的应用任务中,【我们可根据任务需求来采用不同的截断点】,例如若我们更重视“查准率”,则可选择排序中靠前的位置进行截断;若更重视“查全率”,则可选择靠后的位置进行截断.

 

8、ROC曲线?

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

ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,它源于“二战”中用于敌机检测的雷达信号分析技术,二十世纪六七十年代开始被用于一些心理学、医学检测应用中,此后被引入机器学习领域[Spackman,1989].

 

9、ROC曲线与AUC示意图?

注意基于【有限样例】绘制的ROC曲线与AUC:现实任务中通常是利用有限个测试样例来绘制ROC图,此时仅能获得有限个(真正例率,假正例率)坐标对,无法产生图2.4(a)中的光滑ROC曲线,只能绘制出如图2.4(b)所示的近似ROC曲线.

 

 

 

10、ROC曲线绘图过程?

ROC曲线绘图过程很简单:给定m+个正例和m-一个反例,根据学习器预测结果对样例进行【排序】,然后把【分类阈值设为最大】,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点.然后,【将分类阀值依次设为每个样例的预测值】,即依次将每个样例划分为正例.设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/(m+));当前若为假正例,则对应标记点的坐标为(x,y+1/(m-)),然后用线段连接相邻点即得.

 

11、ROC曲线比较?

进行学习器的比较时,与P-R图相似,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言【后者的性能优于前者】;

若两个学习器的【ROC曲线发生交叉】,则难以一般性地断言两者孰优孰劣.此时如果一定要进行比较,则较为合理的判据是【比较ROC曲线下的面积,即AUC(Area Under ROC Curve)】

 

12、2.3.4代价敏感错误率与代价曲线?

在现实任务中常会遇到这样的情况:【不同类型的错误所造成的后果不同】.例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者,看起来都是犯了“一次错误”,但后者的影响是增加了进一步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机;再如,门禁系统错误地把可涵行人员拦在门外,将使得用户体验不佳,但错误地把陌生人放进门内,则会造成严重的安全事故.为权衡不同类型错误所造成的不同损失,可为错误赋予【“非均等代价”(unequal cost)】.

以二分类任务为例,我们可根据任务的领域知识设定一个【“代价矩阵”(cost matrix)】,如表2.2所示,【其中cost_ij;表示将第i类样本预测为第j类样本的代价】:一般来说,cost_ii=0;若将第0类判别为第1类所造成的损失更大,则cost_01>cost_10;损失程度相差越大,cost01与cost10值的差别越大.

 

 

二、内容在总结中

博客对应课程的视频位置:

 

 

 

查看原文