2.1经验误差与过拟合
- 误差:我们把学习器的实际预测输出与样本的真实输出之间的差异称为“误差”(error)。
- 经验误差:学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error)。
- 泛化误差:器在新样本上的误差叫做**“泛化误差”(generalization error)。
- 过拟合:过拟合是指,学习器在学习训练样本时将训练样本学得“太好”了,以至于将训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样就会导致泛化能力下降,机器学习中称这种现象为“过拟合”(overfitting)
2.2 评估方法
使用一个“测试集”(testing set)来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”(testing error)作为泛化误差的近似.通常我们假设测试样本也是从样本真实分布中独立同分布采样而得.但需注意的是,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过.
下面介绍几种常见的做法:
- 留出法(hold-out):即直接将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T。但需要注意的是,训练/测试集的划分尽可能要保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。故常采用“分层抽样”(stratified sampling)即保留类别比例的采样方式进行采样(sampling)。(例如通过D进行分层采样而获得含70%样本的训练集S和含30%样本的测试集T,若D包含500个正例,500个反例,则分层采样得到的S应包含350个正例、350个反例,而T则包含150个整理和150个反例)。值得注意的是,在使用留出法时,由于分层方式的不同最终的估计结果也不同,故常采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。通常将大约2/3~4/5的样本用于训练,剩余样本用于测试。一般而言,测试集至少应包含30个样例。
- 交叉验证法(cross validation)
2.3性能度量
对学习器的泛化性能进行评估,也需要有衡量模型泛化能力的评价标准,这就是性能度量。
分类任务中常见的性能度量:
2.3.1错误率与精度
2.3.2 查准率、查全率与F1
2.4 比较检验
- 测试集和训练集上的性能比较
- 不同大小的测试集
- 相同大小的测试集但是测试样例不同
- 算法本身具有随机性,相同的参数在同一个测试集上运行多次
2.5 偏差与方差
期望输出与真实标记的差别称为偏差,偏差–方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
- 偏差,度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
- 方差,度量了同样大小的训练集变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
- 噪声,则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度
- 泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的
- 偏差与方差是有冲突的,称为 偏差-方差窘境(bias-variance dilemma)