分类模型不仅要能够很好地拟合训练数据集,还希望能够很好地预测未知的类标号,于是在评估分类模型的时候,测试模型在检验集上的性能就变得十分有必要了。为了做到这一点,检验记录的类标号必须是已知的。因此,原始数据就不能全部作为训练集去归纳模型,而是部分作为训练集、部分作为检验集。下面介绍几种划分原始数据集的方法。
(1)保持方法:将被标记的原始数据划分为两个不相交的集合,训练集和检验集。在训练集上归纳分类模型,在检验集上评估模型的性能。
这种方法有很大的局限性:第一,会使训练样本变少。第二,由于将原始数据随机分组,所以最后验证集分类准确率的高低与原始数据的分组会有很大的关系。
(2)随机二次抽样:随机二次抽样就是多次重复保持方法。
虽然改进了保持方法,但仍然有很大的局限性,首先训练阶段利用的数据仍然较少,并且,由于没有控制每个记录用于训练和检验的次数,就有可能导致用于训练的某一记录的频率比其他记录高很多。
(3)交叉验证。
① 二折交叉验证:把数据分为相同大小的两个子集,先选择一个作为训练集;另一个作为检验集,然后交换两个集合的角色。
② k 折交叉验证:把数据分为大小相同的 k 份,每次运行,选择其中一份作为检验集,其余的全作为训练集,并重复 k 次该过程,使每份数据都恰好用于验证一次。
③ 留一法:如果原始数据有 N 个样本,那么留一个样本作为检验集,其余 N -1个样本作为训练集,重复 N 次,使每个样本都作为过一次检验集,取 N 个模型准确率的平均数作为该分类器的性能指标。
留一法的优点很明显:第一,每一次几乎所有的样本都用于训练模型,因此最接近原始样本的分布。第二,可以消除随机因素对实验结果的影响,从而确保实验结果可以被复制。但同样的,留一法需要建立 N 次模型,计算量会很大,而且,每个检验集只有一个记录,性能估计度量的方差偏高。