Skip to content

5 种交叉验证技术

5 Cross Validation Techniques

在单个验证集上调优和验证机器学习模型可能会有误导性,有时会得到过于乐观的结果。这可能源于一次幸运的随机划分,使模型在验证集上表现极佳,但在新的、未见数据上却表现糟糕。正因如此,我们常用交叉验证(cross validation)来替代简单的单集验证。交叉验证的做法是反复把可用数据划分成若干子集,在其中几个子集上训练模型,在剩余子集上验证。交叉验证的主要优势在于,相比传统验证方法,它能给出更稳健、更无偏的模型性能估计。下面是五种最常用、必须了解的交叉验证技术。

ds p130 1

  • 留一个数据点用于验证。
  • 在剩余的数据点上训练模型。
  • 对所有点重复上述过程。
  • 当然你可能猜到了,当数据点很多时这在实践中是不可行的。这是因为模型数量等于数据点数量。
  • 我们可以把它推广为留 p 法交叉验证(Leave-p-Out Cross Validation),其中每次迭代保留 p 个观测用于验证,其余用于训练。

ds p131 1

  • 把数据分成 k 个大小相等的子集。
  • 选其中一个子集用于验证。
  • 在剩余的子集上训练模型。
  • 对所有子集重复上述过程。

ds p131 2

  • 主要用于具有时间结构的数据。
  • 数据划分遵循时间顺序,使用一个固定大小的训练窗口。
  • 模型在随后的窗口上进行评估。

ds p132 1

  • 另一种常用于时间序列数据的技术。
  • 与滚动交叉验证不同,如果窗口之间的方差没有明显变化,就会有意把数据切片保持得较短。
  • 这也比滚动交叉验证更节省计算量。

ds p132 2

  • 上面讨论的技术可能不适用于类别不平衡的数据集。分层交叉验证主要用于保持类别分布。
  • 其划分方式保证了类别分布得以保持。

我们将在下一章继续讨论交叉验证。

本站内容仅供学习交流,版权归原作者所有。