一、误差、经验误差(训练误差)、泛化误差->过拟合(overfitting)、欠拟合(underfitting)
1.误差(error)是学习器的实际预测输出与样本的真实输出之间的差异。
2.训练误差(training error)或经验误差(empirical error)是训练集上的误差。
3.泛化误差(generalization error)是新样本上的误差。
4.显然,我们希望得到在新样本上的泛化误差比较小的学习器。当事先不知道新样本是什么样,实际能做的就是让泛化误差最小化。
为了达到这个目的,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本的时候做出正确的判别。然而,把训练样本学得太好的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本会具有的一般性质,这样就会导致泛化性能下降,这种现象称为“过拟合(overfitting)”,和其相对的是欠拟合(underfitting)。前者是学习能力太过于强大,后者是学习能力低下。
5.如何解决过拟合(overfitting)和欠拟合(underfitting)问题
解决欠拟合(underfitting)问题的方法,在决策树学习中扩展分支、在神经网络学习中增加训练轮数等。
解决过拟合(overfitting)问题的方法,不能彻底避免,只能去减少其风险。
二、用于模型选择(model selection)的评估方法
一般,通过实验测试来对学习器的泛化误差进行评估并进而做出选择,因此,使用一个测试集(testing set,应尽可能与训练集互斥)来测试学习器对新样本的判别能力,用测试误差(testing error)作为泛化误差的近似。
1.留出法(hold-out)直接将数据集D划分为两个互斥的集合,S(训练集)和T(测试集),在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。
训练/测试集的划分要尽可能保持数据分布的一致性,如在分类任务中保持样本的类别比例相似,用到分层采样(stratified sampling)。
2.交叉验证法(cross validation)将数据集D划分为k个大小相似的互斥子集。
3.自助法(bootstrapping)睡觉哦直接以自助采样法(bootstraping sampling)为基础的。
4.调参(parameter tuning)与最终模型
把学得模型在实际使用中遇到的数据称为测试数据,模型评估与选择中用于评估测试的数据集称为“验证集(validation set)”。
二、偏差、方差和噪声的含义
1.偏差(bias)是期望输出与真实标记的差别,度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
2.方差(variance)度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
3.噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
4.偏差-方差分解(bias-variance decomposition)是解释学习泛化性能的一种重要工具;泛化性能是由学习算法的能力、数据的充分性和学习任务本身的难度所共同确定的。一般来说,偏差与方差是有冲突的,这称为偏差-方差窘境(bias-variance dilemma)。给定一个学习任务,当训练不足的时候(假设我们能够控制训练程度),学习算法本身的拟合能力不够强,数据扰动不足以使学习器发生显著变化,此时偏差主导了泛化错误率;但是当训练程度加深,学习器的拟合能力逐渐增强的时候,数据扰动会被学习器学到,这时,方差主导了泛化错误率;在训练充足后,学习器的学习能力已经十分强的时候,训练数据的轻微扰动都会导致学习器的发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,那么将发生过拟合。