一、经验误差与过拟合
经验误差:一般地,我们吧学习器的实际预测输出与样本的真实输出之间的差异称为“误差”,学习器在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差”。
过拟合:当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。这种称为“过拟合”,反之称为“欠拟合”。
二、数据集的划分方法
1、留出法
“留出法”直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个测试集T,即D=S∪T,S∩T=∅。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。
需值得注意的是,训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响,例如在分类任务中至少要保证样本的类别比例相似。
常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。
2、交叉验证法
“交叉验证法”先将数据集D划分为k个大小相似的互斥子集,即D=D1∪D2∪...∪Dk,Di∪Dj=∅(i≠j)。每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后,每次用k-1个子集的并集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。通常把交叉验证法称为“k折交叉验证法”。
假定数据集D中包含m个样本,若令k=m,则得到了交叉验证法的一个特例:留一法。
3、自助法
“自助法”直接以自助采样法为基础。给定包含m个样本的数据集D,我们对它进行采样产生数据集D':每次随机从D中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次之后,我们就得到了包含m个样本的数据集D'。
4、总结
自助法在数据集较小、难以有效划分训练/测试集时很有用。
初始量足够时,留出法和交叉验证法更常用。
数据集小且可以有效划分的时候留一法更有效。
三、性能度量
1、均方误差
回归任务最常用的性能度量