机器学习——模型评估与选择二

2.3性能度量

性能度量

对于模型的性能度量,我们通常用一下几种方法来进行度量: 
1. 错误率/精度(accuracy) 
2. 准确率(查准率,precision)/召回率(查全率,recall) 
3. P-R曲线,F1度量 
4. ROC曲线/AUC(最常用) 
5. 代价曲线 


性能度量:衡量模型泛化能力的评价标准。

给定样例集D={(x1,y1),(x2,y2),……,(xm,ym)},yi是对xi的真实标记,要评估学习器f的性能,就要把学习器预测结果f(x)与真实标记y进行比较。

均方误差:

   

数据分布D和概率密度函数p(.),均方误差:

  

2.3.1错误率与精度

错误率:分类错误的样本数占样本总数的比例。

  

精度:分类正确的样本数占样本总数的比例。

  

数据分布D和概率密度函数p(.)

错误率:

  

精度:

  

2.3.2查准率、查全率与F1

二分类

True positive 真正例

False positive 假正例

True negative 真反例

False negative 假反例

TP+FP+TN+FN = 样例总数

①查准率P

  

查全率R

  

通常,查准率高时,查全率偏低;查全率高时,查准率偏低。

例如,若希望好瓜尽可能的挑选出来,则可通过增加选瓜的数量来实现,查准率就会低;

若希望挑出的瓜中好瓜比例尽可能高,则可挑选有把握的瓜,必然会漏掉好瓜,查全率就低了。

 

学习器把最可能是正例的样本排在前面。按此排序,把样本作为正例进行预测,根据PR绘图。

如果一个学习器的PR曲线包住了另一个,则可以认为A的性能优于C

如果有交叉,如AB,期望PR双高,综合考虑PR性能。

引入平衡点(BEP),基于BEP比较,A优于B

 

但是我们如何通过PR曲线来判断哪个模型更好呢?这里有以下集中判断方式:

  • 基于曲线是否覆盖来进行判断。即如果模型B的PR曲线此时完全包住了模型C的PR曲线,此时我们认为模型B对于该问题更优于模型C,这也可以理解,因为在相同召回率的情况下,模型B的准确率要比模型C的更高,因此B必然更优一些。但是这种方法在曲线有交叉的时候不好判断;
  • 基于平衡点来进行判断。平衡点即为召回率与准确率相等的点,如果该点的值越大,则认为模型越优,但这样的判断过于简单;
  • 利用F1度量来进行判断。 F1=2PRP+R F1 的值越大越好,可以发现, F1 是一个准确率和召回率的调和平均数,其更care较小值,因此如果P与R中一个值太小会对 F1 产生更大的影响,但是这样的判断都是以准确率和召回率同等重要为基础的,但是对于很多问题,其会更care其中的一个指标,例如癌症的判断,其更关注的是召回率而不是准确率,因为如果我们更关注准确率,就会使得很多的癌症患者被误诊为不是癌症,从而造成患者的死亡率会更高;
  • 利用 Fβ 来判断。  Fβ=(1+β2)PRβ2P+R ,当 β=1 的时候,即为 F1 度量,当 β>1 的时候,召回率有更大的影响,反之准确率有更大的影响,这个很好理解,我们把 Fβ 转换一下又 Fβ=11+β2(β2R+1P) ,通过该公式我们可以看到当 β>1 的时候,R对于 Fβ 的影响更大。

②更常用的是F1度量:

  

Fβ :F1的一般形式,能让我们表达对查准率/查全率的不同偏好。

  

Β>0度量了查全率对查准率的相对重要性;β=1退化为F1;β>1查全率有更大影响;β<1查准率有更大影响。

 

③在混淆矩阵上分别计算查准率和查全率,在计算平均值,得到宏查准率,宏查全率,以及宏F1

  

④将各混淆矩阵的对应元素进行平均,得到TPFPTNFN的平均值,记为在计算出微查准率,微查全率,以及微F1

  

2.3.3 ROC AUC

最可能是正例的样本排在前面,按此排序。排序中某个截断点,前一部分判断正例,后一部分为反例。不同任务中根据需求划分截断点;重视查准率,靠前位置截断;重视查全率,靠后位置截断。

ROC:纵轴:真正例率TPR;横轴:假正例率FPR

  

现实中,有限个测试样例绘制ROC,不可能光滑。只能像右图一样。

前一个标记点坐标为(x,y),当前若为真正例,则标记为;假正例,用线段连接。

 

若一个学习器的ROC曲线被另一个包住,后者的性能能优于前者;若交叉,判断ROC曲线下的面积,即AUC

  

AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。给定m+个正例,m-个反例,令D+D-分别表示正、反例集合,则排序”损失”定义为

  

Lrank对应ROC曲线之上的面积:若一个正例在ROC曲线上标记为(x,y),则x恰是排序在期前的所有反例所占比例,即假正例,因此:

  

对于该曲线,我们首先有4个特殊的点要说明一下: 
(0,0)点:我们把所有的个体都预测为假,那我们可以知道TP与FP都为0,因为TP表示预测为真实际也为真,而FP表示预测为真实际为假的个体; 
(0,1)点:我们所有预测为真的个体都正确,这是我们最理想的情况,此时 TP=TP+FN ,而 FP=0 ; 
(1,0)点:这是预测最糟糕的情况,即所有的预测都是错误的,那么此时 TP=0 ,而 FP=FP+TN ; 
(1,1)点:因为其是在 y=x 的这条直线上,因此其相当于随机预测,即我预测一个个体为真还是假都是随机的。 
因此我们可以发现如果一个模型的ROC曲线越靠近与左上角,那么该模型就越优,其泛化性能就越好,但是对于两个模型,我们如何判断哪个模型的泛化性能更优呢?这里我们有主要以下两种方法:

  • 如果模型A的ROC曲线完全包住了模型B 的ROC曲线,那么我们就认为模型A要优于模型B;
  • 如果两条曲线有交叉的话,我们就通过比较ROC与X,Y轴所围得曲线的面积来判断,面积越大,模型的性能就越优,这个面积我们称之为AUC(area under ROC curve) 

2.3.4代价敏感错误率与代价曲线

代价矩阵:

costij表示将第i类样本预测为第j类样本的代价。

  

非均等代价下,希望总体代价最小化。

 

若假设第0类为正类,1为反类。D+代表例集正例子集,D-反例子集,则代价敏感错误率为:

  

在非均等代价下,ROC不能直接反应出学习器的期望总体代价,代价曲线可以。横轴为[0,1]的正例函数代价

  

p是样例为正例的概率;纵轴是取值为[0,1]的归一化代价

  

FPR假正例率,FNR=1-TPR假反例率。

 

ROC每个点,对应代价平面上一条线。

例如,ROC(TPR,FPR),计算出FNR=1-TPR,在代价平面上绘制一条从(0,FPR)(1,FNR)的线段,面积则为该条件下期望的总体代价。所有线段下界面积,所有条件下学习器的期望总体代价。

  

按照图来看,最终总体代价越来越小。(学习器,不断进步!)

 

2.4比较检验

默认以错误率为性能度量,用ε表示。

2.4.1假设检验

学习器泛化错误率,并不能测量;只能获知其测试错误率。泛化错误与测试错误率未必相同,但两者接近的可能性比较大,因此,用后者估推出泛化错误率的分布。

泛化错误为的学习器在一个样本上犯错的概率是;测试错误率意味着在m个测试样本中恰有*m个被误分类。

包含m个样本的测试集上,泛化错误率为的学习器被测得测试错误率为的概率:

  

即为

给定测试错误率,则解可知,时最大,增大时减小。符合二项分布。

例如,=0.3,则10个样本中3个被误分类的概率最大。

  

我们根据图表粗略估计ε0,比如这幅图当中ε0可取5,6,7都可以,然后求出总体概率α,我们把大多数样本分布的区间1-α称为置信区间,所以只要不超过ε0,即在置信度下就是符合条件的假设 ,否则被抛弃,即在α显著度下。

 

t检验

多次重复留出法或是交叉验证法等进行多次训练/测试,得到多个测试错误率。

平均测试错误率μ和方差σ²为

  

考虑到这k个测试错误率可看作泛化错误率的独立采样,则变量

    

服从自由度为k-1t分布。

当测试错误率均值为时,在1-α概率内观测到最大的错误率,即临界值。

双边假设,阴影部分各有α/2的面积;阴影部分范围为

若平均错误率μ与之差|μ-|位于临界值范围内,则可认为泛化错误率为置信度为1-α;否则,认为在该显著度下可认为泛化错误率与有显著不同。

   

2.4.2 交叉验证t检验

对不同学习器的性能进行比较。

两个学习器AB,若使用k折交叉验证法得到的测试错误率分别为,其中是在相同的第i折训练/测试集上得到的结果,可用k折交叉验证成对t检验”来进行比较检验。,使用相同的训练/测试集的测试错误率相同,两个学习器性能相同。

k折交叉验证产生k对测试错误率:对没对结果求差若性能相同则是0。用,t检验,计算差值的均值μ和方差σ²。

若变量小于临界值,则认为两个学习器的性能没有显著差别;否则,可认为两个学习器性能有显著差别,错误平均率小的那个学习器性能较优。

 

5*2交叉验证

假设检验的前提:测试错误率均为泛化错误率的独立采样。

因样本有限,加查验证不同轮次训练集有重叠,测试错误率实际上不独立,会导致过高估计假设成立的概率。5*2交叉验证,可缓解这一问题。

5*2交叉验证,52折交叉验证。ABi2折交叉验证产生两对测试错误率,对它们分别求差,得到第1折上的差值和第2折上的差值为缓解测试错误率的非独立性,仅计算第一次2折交叉验证的结果平均值

对每次结果都计算出方差

变量服从自由度为5t分布,其双边检验的临界值

α=0.05时为2.5706;α=0.1是为2.0150

 

2.4.3 McNemar检验

列联表:估计学习器AB的测试错误率;获得两学习分类结果的差别,两者都正确,都错误或者一个正确一个错。

    

若假设AB学习器起能相同,则应由e01=e10,那么|e01-e10|应服从正态分布。McNemar检验考虑变量服从自由度为1分布,即标准正态分布变量的平方。给定显著度α,当以上变量值小于临界值时,认为两学习器性能没有显著差别;否则性能又显著差别。当α=0.05时为3.8415;α=0.1是为2.7055.

 

2.4.4 Friedman检验与 Nemenyi后续检验

①一组数据集上对多个算法进行比较,基于算法排序的Friedman检验

假定用D1D2D3D4四个数据集对ABC进行比较,由好到怀排序,并赋予序值1,2,……

  

性能相同,平均序值应当相同。

假定N个数据集上比较k个算法,令ri表示第i个算法的平均序值。简化考虑不考虑平分均值的情况,则ri的平均值和方差分别为

变量

kN都较大时,服从自由度为k-1分布。

上述为原始Friedman检验,过于保守,现在通常使用变量

其中由原式得到服从自由度为k-1(k-1)(N-1)F分布。

若”所有算法的性能相同”这个假设被拒绝,说明算法的性能显著不同。

 

Nemenyi后续检验

进行”后续检验”来进一步区分个算法,常用的有 Nemenyi后续检验。

Nemenyi检验计算出平均序值差别的临界值域

      

 

下表给出α=0.050.1时常用的qα值,若两个算法的平均序值之差超出了临界值域CD,则以相应的置信度拒绝”两个算法性能相同”这一假设。

大于α=0.05时的F检验临界值5.143,因此拒绝”所有算法性能相同”这个假设;用Nemenyi后续检验,选择kq,根据式算出CD,可知算法两两之间是否有显著差别。

 

根据上面表2.5绘制出Friedman检验图。

  

横轴:平均序列,每个算法用原点表示平均序列,横线表示临界值域大小。从图中观察,若两算法横线段有交叠,说明没有显著差别。例如图中,算法AB没有显著差别,而算法A优于算法C,无交叠区。

 

2.5偏差与方差

偏差-方差分解:解释学习算法泛化性能的一种重要工具。

①偏差

对测试样本x,令yDx在数据集中的标记,yx的真实标记,f(x;D)为训练集D上学得模型fx上的预测输出。

以回归任务为例,学习算法的期望预测为

使用样本数相同的不同训练集产生的方差为

噪声为

期望输出与真是标记的差别成为偏差(bias),即

 

假定噪声期望为0,通过简单的多项式展开合并,可对算法的期望泛化误差进行分解:

即泛化误差可分解为偏差、方差与噪声之和。

范围性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。

 

②方差

偏差和方差是有冲突的。

训练不足时,由偏差主导泛化误差;训练充足时,有方差主导泛化误差。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值