4. 比较检验
(一) 对单个学习器泛化性能的假设检验
4.1.1 二项检验
4.1.2 t 检验
考虑到这k个测试错误率可看作泛化错误率的独立采样,则下面变量服从自由度为 k-1的t分布:
对假设“μ=”和显著度α,我们可计算出当测试错误率均值为时,在1-α概率内能观测到的最大错误率,即临界值。这里考虑双边(two-tailed)假设,两边阴影部分各有α/2的面积;假定阴影部分范围分别为和。若位于临界值范围,则不能拒绝假设“μ=”,即可认为泛化错误率为,置信度为1-α;否则可拒绝该假设。
(二)对不同学习器泛化性能的假设检验
4.2.1 交叉验证t检验
对两个学习器A和B,若我们使用k折交叉验证法得到的测试错误率分别为和,其中和是在相同的第i折训练/测试集上得到的结果,则可用k折交叉验证“成对t检验”(paired t-tests)来进行 比较检验,这里的基本思想是若两个学习器的性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同,即。
具体来说,对k折交叉验证产生的k对测试错误率:先对每对结果求差,;若两个学习器性能相同,则差值均值应为零。因此,可根据差值 来对“学习器A与B性能相同”这个假设做t检验,计算出差值的均值μ和方差σ²,在显著度α下,若变量小于临界值,则假设不能被拒绝,即认为两个学习器的性能没有显著差别;否则可认为两个学习器的性能有显著差别,且平均错误率较小的那个学习器性能较优。这里是自由度为k-1的t分布上尾部累积分布为α/2 的临界值。为保证测试错误率均为泛化错误率的独立采样,得到有效的假设检验,常采用“5×2交叉验证”。
4.2.2 McNemar检验
对二分类问题,使用留出法不仅可估计出学习器A和B的测试错误率,还可获得两学习器分类结果的差别,即两者都正确、都错误、一个正确另一个错误的样本数,如“列联表”:
若我们做的假设是两学习器性能相同,则应有,那么变量 应当服从正态分布,McNemar检验考虑变量,服从自由度为1的分布,即标准正态分布变量的平方。给定显著度α,当以上变量值小于临界值时,不能拒绝假设,即认为两学习器的性能没有显著差别;否则拒绝假设,即认为两者性能有显著差别,且平均错误率较小的那个学习 器性能较优。
4.2.3 Friedman 和 Nemenyi后续检验
当有多个 算法参与比较时,一种做法是在每个数据集上分别列出两两比较的结果,而在两两比较时可使用前述方法;另一种方法更为直接,即使用基于算法排序的 Friedman检验。
假定我们用D₁、D₂、D₃和D₄四个数据集对算法A、B、C进行比较。首先,使用留出法或交叉验证法得到每个算法在每个数据集上的测试结果,然后在每个数据集上根据测试性能由好到坏排序,并赋予序值1,2,..;若算法的测试性能相同,则平分序值。例如,在D₁和D₃上,A最好、B其次、C最差, 而在D₂上,A最好、B与C性能相同,……,则可列出下表,其中最后一行通过对每一列的序值求平均,得到平均序值。
若算法性能相同,则它们的平均序值也相同。假定我们在N个数据集上比较k个算法,令表示第 i个算法的平均序值,为简化讨论,暂不考虑平分序值的情况,则服从正态分布,其均值和方差分别为。使用变量,其中服从自由度为k-1和(k-1)(N-1)的F分布,且:
5. 偏差与方差
对学习算法除了通过实验估计其泛化性能,人们往往还希望了解它“为什么”具有这样的性能。“偏差-方差分解”(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。
对测试样本x,令为x在数据集中的标记,y为x的真实标记,为训练集D上学得模型f在x上的预测输出。
以回归任务为例,学习算法的期望预测为:
使用样本数相同的不同训练集产生的方差为:
噪声为:
期望输出与真实标记的差别称为偏差(bias)为:
也就是说,泛化误差可分解为偏差、方差与噪声之和。
注:
回顾偏差、方差、噪声的含义:
- 偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
- 方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
- 噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
6. 参考文献
[1]周志华. 机器学习[M]. 北京:清华大学出版社. 2016.01.
[2]谢文睿、秦州.机器学习公式详解[M].人民邮电出版社.2021.03