2.2.3 自助法
我们希望评估的是用D训练出的模型,但在留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这必然会引入一些因训练样本规模不同而导致的估计偏差.留一法受训练样本规模变化的影响较小,但计算复杂度又太高了:有没有什么办法可以减少训练样本规模不同造成的影响,同时还能比较高效地进行实验估计呢?
“自助法”(bootstrapping)是一个比较好的解决方案,它直接以自助采样法(bootstrap sampling)为基础[Efron and Tibshirani,1993].给定包含m个样本的数据集D,我们对它进行采样产生数据集D7:每次随机从D中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D7,这就是自助采样的结果.显然,D中有一部分样本会在D'中多次出现,而另一部分样本不出现.可以做一个简单的估计,样本在m次采样中始终不被采到的概率是(1 -击)…,取极限得到即通过自助采样,初始数据集D中约有36.8070的样本未出现在采样数据集D'中,于是我们可将D'用作训练集,DD'用作测试集;这样,实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有数据总量约1/3的、没在训练集中出现的样本用于测试.这样的测试结果,亦称“包外估计”(out-of-bagestimate).自助法在数据集较小、难以有效划分训练/测试集时很有用;此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处,然而,自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差.因此,在初始数据量足够时,留出法和交叉验证法更常用一些.?