模型评估与选择
经验误差与过拟合
误差(误差期望):
学习器的实际预测输出与样本的真实输出之间的差异称为“误差”。
学习器在训练集上的误差称为“训练误差”、“经验误差”;在新样本上的误差称为“泛化误差”
过拟合与欠拟合:
过拟合:学习器把训练样本学习得太好,得到的经验误差很小,这时,很可能已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样会导致泛化性能下降,这种现象称为“过拟合”。
欠拟合:指对训练样本的一般性质尚未学好。
模型选择:
学习算法、参数配置的不同会产生不同的模型
理想的解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。
评估方法
通常,可通过实验测试来对学习器的泛化误差进行评估并进而作出选择。
使用一个“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为泛化误差的近似。
测试集与训练集尽可能的互斥。---->通过对一个数据集D进行适当的处理,从中产生出训练集和测试集。
留出法
直接将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T。在S上训练处模型后,用T来评估其测试误差,作为对泛化误差的估计。
注意:训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。
分层采样:保留类别比例的采样方式。
注意:即便在给定训练/测试集的样本比例后,仍存在多种划分方式对初始数据集D进行分割。
单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。
常见的做法是将大约2/3~4/5的样本用于训练,剩余的样本用于测试。
一般而言,测试集至少应含30个样例。
交叉验证法
交叉验证法(k倍交叉验证、k折交叉验证):先将数据集D划分为k个大小相似的互斥子集,每个子集 D i D_{i} Di 都尽可能保持数据分布的一致性(从D中通过分层采样得到);然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集。
这样就可以获得k组训练/测试集,从而可以进行k次训练和测试,最终返回的是这k个测试结果的均值
注意:与留出法相似,为减小因样本划分不同而引入的差别,k折交叉验证通常要随机是用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值。
特例:留一法
数据集D中包含m个样本,令k = m。------>留一法
留一法不受随机样本划分方式的影响,因为m个样本只有唯一的方式划分为m个子集。
留一法使用的训练集与初始数据集相比只少了一个样本----->在绝大多数情况下,留一法中被实际评估的模型与期望评估的用D训练出的模型很相似。因此,留一法的评估结果往往被认为比较准确。
留一法的缺陷:在数据集比较大时,训练m个模型的计算开销可能是难以忍受的,另外,留一法的估计结果也未必永远比其他评估方法准确。
自助法(可重复采样、有放回采样)
直接以自助采样法为基础。