模型评估与选择-----第三部分

本文探讨了机器学习中性能度量的比较方法,包括如何使用假设检验验证泛化性能,利用二项检验和t检验进行单一及多个测试错误率的比较,并介绍了交叉验证t检验与5*2交叉验证的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四、比较检验

有了学习器的性能度量结果,但还需要对结果进行比较,这里面涉及几个重要因素:
1、我们希望比较的是泛化性能,而通过实验评估方法我们获得的只是测试集上的性能,这两者的对比结果可能未必相同;
2、测试集上的性能与测试集本身的选择有很大的关系。
3、很多机器学习算大本身有一定的随机性,即使用相同的参数设置在同一个测试集上多次运行,其结果也会有所不同。

对此,可用假设检验进行验证,下面默认以错误率为性能度量;
泛化错误率为 的学习器在一个样本上犯错的概率是 ;测试错误率 意味着在m个测试样本中恰有 *m个被误分类。假定测试样本是从总体分布中独立采样得到,那么泛化错误率为 的学习器将其中 个样本误分类,其余样本全部分类正确的概率是
;由此可估算出其恰将 个样本误分类的概率:


,这也表达了在包含m个样本的测试集上,泛化错误率为 的学习器被测得测试错误率为 的概率。

给定测试错误率,解 可知, 是最大。
我们可以用“二项检验”来对 (即泛化错误率不大于 )这也的假设进行检验。则在1- 的概率内所能观测到的最大错误率如下:

此时若测试错误率 小于临界值 ,则根据二项检验可得出结论:在 的显著性水平下,假设不能被拒绝,即能以1- 的置信度认为学习器的泛化错误率不大于



很多时候我们通过多次重复留出法或是交叉验证法等进行多次训练/测试,会得到多个测试错误率,此时可用“t检验”。假定得到k个测试错误率,则平均测试错误率和方差为:

                                     

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

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


2、交叉验证t检验
对于两个学习器A和B,若使用K折交叉验证得到的测试错误率分别为 ,其中 是在相同的第i折训练/测试集上得到的结果,可使用成对t检验来进行比较检验;

思想:若两个学习器性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同,即

具体操作;
对K折交叉验证产生的K对测试错误率:先对每对结果求差,若性能相同,得差值的均值为零,因此可根据差值来对学习器A和B性能相同这个假设做t检验,计算出差值的均值和方差,在显著度 下,若变量
                                                                 

小于临界值 ,则不能拒绝原假设,即认为两个学习器的性能没有显著的差异。



欲进行有效的假设检验,一个重要的前提是测试错误率均为泛化错误率的独立采样,然后通常情况下由于样本量有限,在使用交叉验证等试验估计方法时,不同轮次的训练集会有一定程度的重叠,这使得测试错误率实际上并不独立,会导致高估假设成立的概率,为缓解这个问题,可采用“5*2交叉验证”。

5*2交叉验证: (即第一次2折交叉验证的结果的平均值),而方差与前面的方差一样,采用全部数据,变量
                                                                                           
服从自由度为5的t分布。



McNemar检验:


Friedman检验:在一组数据集上对多个算法进行比较:使用基于算法排序的检验


五、偏差与方差


即泛化误差可分解为偏差、方差和噪声之和;
偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。


偏差--方差分解说明:泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度共同决定的;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值