2.1 经验误差与过拟合
基本概念

  • 错误率(error rate):分类错误的样本数占样本总数的比例
  • 精度(accuracy):“精度 = 1 - 错误率”
  • 误差(error):学习器的实际预测输出与样本的真实输出之间的差异。
  • 训练误差(training error)& 经验误差(empirical error):学习器在训练集上的误差。
  • 泛化误差(generalization error):学习器在新样本上的误差。
  • 过拟合(overfitting):当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。
  • 欠拟合(underfitting):学习器对训练样本的一般性质尚未学好。
  • 过拟合(亦称“过配”)通常是由于学习能力过于强大而造成的,而欠拟合(亦称“欠配”)则通常是由于学习能力低下而造成的。过拟合无法彻底避免,只能“缓解”。
    学习能力是否“过于强大”,是由学习算法和数据内涵共同决定的。
  • 模型选择(model selection)问题*
    理想的解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。

2.2 评估方法
实验测试
测试集(testing set):测试学习器对新样本的判别能力
测试误差(testing error):泛化误差的近似
测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。
只有一个训练集D,既要训练,又要测试?
通过对D进行适当的处理,从中产生训练集S和训练集T。
2.2.1 留出法
“留出法”直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。
注意:
(1)训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。
分层采样(stratified sampling):保留类别比例的采样方式。
(2)单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果。
(3)将大约2/3~4/5的样本用于训练,剩余样本用于测试。
2.2.2 交叉验证法
“交叉验证法”(cross validation)先将数据集D划分为k个大小相似的互斥子集,每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。通常又称为“k折交叉验证”(k-fold cross validation)。K最常用的取值是10.
2.2.3 自助法
“自助法”(bootstrapping)直接以自助采样法(bootstrap sampling)为基础。基本思想是:给定包含m个样本的数据集D,每次随机从D 中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D 中,使得该样本在下次采样时仍有可能被采到。重复执行m 次,就可以得到了包含m个样本的数据集D'。
2.2.4 调参与最终模型
大多数学习算法都有些参数(parameter) 需要设定,参数配置不同,学得模型的性能往往有显著差别,这就是通常所说的"参数调节"或简称"调参" (parameter tuning)。
需要注意的是:当选定好模型和调参完成后,我们需要使用初始的数据集D重新训练模型,即让最初划分出来用于评估的测试集也被模型学习,增强模型的学习效果。