12. 小结:设置开发和测试集

  • 从能反映你将来希望获得的数据并想做得更好的分布中选取开发集和测试集。这可能不同于你的训练集;
  • 尽可能选择服从同一分布的开发集和测试集;
  • 为你的团队选择一个单一数字评估指标来进行优化。如果你关心多个目标,考虑将他们合并到一个公式中(例如多个误差指标的均值)或者定义好满足指标和优化指标;
  • 机器学习是一个高速迭代的过程:在发现满意的方法之前可能要尝试很多的idea;
  • 拥有开发/训练集和单一数字评估指标能够帮助你快速评估算法,从而加快迭代速度;
  • 当开始构建一个全新的应用的时候,尝试快速在一周内建立开发/训练集和评估指标。当然,在成熟的应用上花费更长的时间建立这些指标是没问题的;
  • 当你拥有大量数据的时候,传统的70%/30%的训练集/测试集分割比例不再适用,开发集和测试集对总数据集的占比可以远远少于30%;
  • 你的开发集应该足够大,大到能够检测到你的算法准确率上的有意义的变化,当然也没有必要太大。你的测试集应该大到能够为你系统性能评估提供一个高可信度;
  • 如果你的开发集和评估指标不能再正确地指导你的团队,请迅速修改它们:(i)如果你过拟合了开发集,请增大开发集数据量、(ii)如果开发集/测试集的分布不服从真实数据的分布,请获取新的开发/测试集、(iii)如果你的评估指标不再衡量对你而言最重要的内容,请更新评估指标。