零基础学习机器学习(四)模型的评估与选择的数学原理下篇
比较检验
有了评估方法和性能度量,看起来就可以对学习器的性能进行评估比较了:先使用某种实验评估方法测得学习器的某个性能度量结果,然后对这些结果进行比较,但是怎么来做这个比较呢?是直接取得性能度量的值然后“比大小”吗?
实际上,机器学习中的性能比较这件事要比大家想象的复杂得多,这里面涉及几个重要因素:
- 首先,我们希望比较的是泛化性能,然而通过实验评估方法我们获取的是测试集上的性能,两者的对比结果可能未必相同
- 测试集上的性能与测试集本身的选择有很大关系,且不论使用不同大小的测试机会得到不同的结果,即便使用大小相同的测试机,若包含的测试样例不同,测试结果也会不同
- 很多机器学习算法本身有一定的随机性,即使使用相同的参数在同一个测试集上运行多次,结果也会不同
统计假设检验为我们进行学习器性能比较提供了重要的依据。基于假设检验的结果我们可以推出,若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B,以及这个结论的把握有多大。
我们先介绍两种最基本的假设检验,然后介绍几种常用的机器学习性能比较方法。为了便于讨论,我们以错误率为性能度量,用 表示
假设检验
假设检验中的“假设”是学习器泛化错误率分布的某种判断或猜想,例如。现实任务中我们并不知道学习器的泛化错误率,只能获知其测试错误率。泛化错误率与测试错误率未必相同,但是直观上,二者接近的可能性比较大,相差很远的可能性很小,因此可以根据测试错误率估推出泛化错误率。
泛化错误率为 的学习器在一个样本上犯错误的概率是;测试错误率 意味着在m个测试样本中有 个被误分类。
假设测试样本是从样本总体分布中独立采样而得,那么泛化错误率为 的学习器将其中 m’ 个样本误分类,其余全部样本分类正确的概率是,由此可以估算出,其将 个样本误分类的概率如下所示,这也表达了在包含m个样本的测试集上,泛化错误率为 的学习器被测得测试错误率为的概率:
给定错误率,则解, 可知, 在 时最大,在 增大时, 减小,这个符合二项分布。
也就是说泛化错误率被测得等于测试错误率的概率是最大的
但是这件事的置信度是多少呢?我们可以使用二项检验来论证