一、留出法
1、将数据集 D D D 划分为两个互斥的集合:训练集 S S S 和测试集 T T T 。
2、训练/测试集划分时要保持数据分布一致性,即保证训练集和测试集中类别比例一致,可采用分层采样。
3、在给定训练/测试样本的比例后,仍然存在多种划分方法对初始数据集 D D D 进行分割,如把 D D D 中样本进行排序,然后把前350个正例放到训练集中,也可把后350个正例放到训练集中。一般采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果。
4、存在问题:若令训练集 S S S 包含绝大数样本,则训练处的模型可能更接近于用 D D D 训练出的模型,但由于 T T T 较小,评估结果可能不够稳定准确;若令测试集 T T T 包含多一些样本,则训练集 S S S 与 D D D 差别更大了,被评估的模型与用 D D D 训练出的模型相比可能有较大差别,从而降低了评估结果的保真性。可从“偏差-方差”角度来理解:测试集小时,评估结果为方差较大;训练集小时,评估结果为偏差较大。
5、常见划分比例:训练集/测试集 = 2/1~4/1。
二、交叉验证法
1、将数据集 D D D 划分为 k k k 个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性,即从 D D D 中通过分层采样得到。然后每次用 k − 1 k-1 k−1 个子集的并集作为训练集,余下的 1 1 1 个子集作为测试集,得到 k k k 组训练/测试集,最终返回这 k k k 个测试结果的均值。
2、交叉验证评估结果的稳定性和保真性很大程度上取决 k k k 的取值,通常把交叉验证法称为 “ k k k 折交叉验证”, k k k 最常取用的值为10。
3、与留出法相似,将数据集 D D D 划分为 k k k 个子集同样存在多种划分方式,为减小因样本划分不同而引入的差别, k k k折交叉验证同查要随机使用不同的划分重复 p p p 次,最终的评估结果是这 p p p 次 k k k 折交叉验证的结果的均值,常见的有 “10次10折交叉验证”。
4、特例:留一法,即将
D
D
D 划分为
m
m
m 个子集(
m
m
m 为
D
D
D 中的样本数)。留一法不受随机样本划分方式的影响,被评估的模型与期望评估用的
D
D
D 训练出来的模型很相似,但模型训练的计算开销很大。
三、自助法
1、在留出法与交叉验证法中,会因训练样本规模的不同而导致估计偏差,留一法计算复杂度又太高,而自助法可以减少训练样本规模不同造成的影响,同时还能比较高效的进行实验估计。
2、给定包含
m
m
m 个样本的数据集
D
D
D ,对它进行采样产生数据集
D
′
D'
D′ ,每次随机从
D
D
D 中挑选一个样本,将其拷贝放入
D
′
D'
D′ ,然后再将这个样本放回初始数据集
D
D
D ,使得该样本在下次采样时仍可能被采样到,重复此过程
m
m
m 次,得到包含
m
m
m 个训练样本的数据集
D
′
D'
D′ 。
D
D
D 中样本在
m
m
m 次采样中始终不被采样到的概率是
(
1
−
m
)
m
(1-m)^m
(1−m)m 取极限得到
lim
m
→
+
∞
(
1
−
1
m
)
m
=
1
e
≈
0.368
\lim_{m \to +\infty}(1-\frac{1}{m})^m=\frac{1}{e} \approx 0.368
m→+∞lim(1−m1)m=e1≈0.368
通过自助采样,输出数据集
D
D
D 中约有36.8%的样本未出现在采样数据集
D
′
D'
D′ 中,于是用
D
′
D'
D′ 做训练集,
D
−
D
′
D-D'
D−D′ 做测试集。
3、自助法在数据集较小、难以有效划分训练/测试集时很有用。此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法又很大的好处。
4、自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差,因此在初始数据量足够是,留出法和交叉验证法更常用。
四、调参与最终模型
1、将数据集划分为训练集、验证集和测试集。
2、基于验证集上的性能在进行模型的选择和调参。
3、模型选择和调参方法使用网格搜索,参数的选择采用先划定参数范围和变化步长,再进行网格搜索,这样选定的参数往往不是最佳的,但这是在计算开销和性能估计之间进行折中的结果。
4、在模型和参数选定后,将训练集和验证集合并,在合并完的数据集上用选定的模型和参数重新训练一个模型,最后交给测试集评估。
参考文献
周志华 著.机器学习,北京:清华大学出版社,2016. (ISBN 978-7-302-42328-7)