⾃助法(Bootstraping)
⾃助法(Bootstraping)是另⼀种模型验证(评估)的⽅法(之前已经介绍过单次验证和交叉验证:)。其以⾃助采样法(Bootstrap Sampling)为基础,即有放回的采样或重复采样。(注:这是⼀种样本内抽样的⽅法,即将样本看作总体并从中进⾏抽样。)
具体做法是:在含有 m 个样本的数据集中,每次随机挑选⼀个样本,将其作为训练样本,再将此样本放回到数据集中,这样有放回地抽样m 次,⽣成⼀个与原数据集⼤⼩相同的数据集,这个新数据集就是训练集。这样有些样本可能在训练集中出现多次,有些则可能从未出现。原数据集中⼤概有 36.8% 的样本不会出现在新数据集中。因此,我们把这些未出现在新数据集中的样本作为验证集。把前⾯的步骤重复进⾏多次,这样就可以训练出多个模型并得到它们的验证误差,然后取平均值,作为该模型的验证误差。
如果需要在多个不同的模型中进⾏选择,那么事先留出测试集,然后在剩余的数据集上⽤⾃助法验证模型,选择验证误差最⼩的模型作为最好的模型,然后⽤训练集+验证集数据按最好模型的设置训练出⼀个新的模型,作为最终的模型,最后⽤测试集测试最终的模型。
为什么使用bootstrap?为什么原数据集中⼤概有 36.8% 的样本不会出现在新数据集中?假设数据集中有m个样本,那么每次每⼀个样本被抽取到的概率是1/m,抽样m次,某个样本始终不被抽取到的概率是(1-1/m)m。当m的取值趋
近于⽆穷⼤时,样本未被抽中的概率为e的负⼀次⽅,结果约等于
0.368。
优点:训练集的样本总数和原数据集⼀样都是 m个,并且仍有约 1/3 的数据不出现在训练集中,⽽可以作为验证集。
缺点:这样产⽣的训练集的数据分布和原数据集的不⼀样了,会引⼊估计偏差。
⽤途:⾃助法在数据集较⼩,难以有效划分训练集/验证集时很有⽤;此外,⾃助法能从初始数据集中产⽣多个不同的训练集,这对集成学习等⽅法有很⼤的好处。
总结:Bootstraping通过重复抽样,避免了Cross Validation造成的样本减少的问题。其次,Bootstraping也可以⽤于随机创造数据。⽐如,随机森林算法就是从原始训练数据中,⽤bootstrap sampling的⽅法有放回地随机抽取k个新的⾃助样本集,并由此构建k棵分类回归树。但由于其训练集有重复数据,这会改变数据的分布,因⽽导致训练结果有估计偏差,因此这种⽅法不是很常⽤,除⾮数据量真的很少。
注:对于时间序列结构的数据,应采⽤block bootstrap。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论