自助法(Bootstraping)是另一种模型验证(评估)的方法(之前已经介绍过单次验证和交叉验证:验证和交叉验证(Validation & Cross Validation))。其以自助采样法(Bootstrap Sampling)为基础,即有放回的采样或重复采样。(注:这是一种样本内抽样的方法,即将样本看作总体并从中进行抽样。)

具体做法是:在含有 m 个样本的数据集中,每次随机挑选一个样本, 将其作为训练样本,再将此样本放回到数据集中,这样有放回地抽样 m 次,生成一个与原数据集大小相同的数据集,这个新数据集就是训练集。这样有些样本可能在训练集中出现多次,有些则可能从未出现。原数据集中大概有 36.8% 的样本不会出现在新数据集中。因此,我们把这些未出现在新数据集中的样本作为验证集。把前面的步骤重复进行多次,这样就可以训练出多个模型并得到它们的验证误差,然后取平均值,作为该模型的验证误差。

如果需要在多个不同的模型中进行选择,那么事先留出测试集,然后在剩余的数据集上用自助法验证模型,选择验证误差最小的模型作为最好的模型,然后用训练集+验证集数据按最好模型的设置训练出一个新的模型,作为最终的模型,最后用测试集测试最终的模型。

为什么原数据集中大概有 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棵分类回归树。但由于其训练集有重复数据,这会改变数据的分布,因而导致训练结果有估计偏差,因此这种方法不是很常用,除非数据量真的很少。

最新文章

  1. window7 桌面新建快捷方式方法
  2. JVM之Parallel Scavenge收集器
  3. Sql Server之旅——第十三站 对锁的初步认识
  4. 获得Unix/Linux系统中的IP、MAC地址等信息
  5. rabbitmq——用户管理
  6. 0 Explore TreeView
  7. POJ 1659 Frogs' Neighborhood
  8. 建立tcl文件
  9. 预览github项目的html文件新方法
  10. 【面向对象设计原则】之里氏替换原则(LSP)
  11. dreamweaver代码提示失效
  12. pom文件报错org.apache.maven.archiver.mavenarchiver.getmanifest
  13. vue路由懒加载
  14. element-ui:el-table时间格式化
  15. vue 條件語句
  16. CDH安装kafka
  17. Oracle使用ODBC连接配置
  18. Docker中配置字符集支持中文
  19. NoSQL(四)
  20. android 对话框中的进度条 (ProgressDialog)

热门文章

  1. 使用 kill 命令杀死 java进程,你用对了吗?
  2. JavaScript判断是否是正确数值 isNaN
  3. JVM性能优化--字节码技术
  4. Mac android studio真机调试步骤
  5. javascript ~~ 符号是什么意思呢?
  6. 常用方法装windows
  7. Oracle数据库之操作符及函数
  8. vue遍历数据是对数据进行筛选 过滤 排序
  9. 谷歌hack语法
  10. day 19 作业