概述
它支持模型评估,但评估结果取决于数据、划分设计和预处理方式。
深入探讨
在 k 折交叉验证中,数据被划分为多个折;每个折轮流被留作测试集一次,其余折则用于训练模型。重复划分可以减少对某一次特定划分的依赖,但并不能保证更高的可靠性:折之间的依赖关系、样本量和分布偏移依然至关重要。预处理应当包含在每个训练折内部。嵌套交叉验证将超参数选择与外部评估相分离。
现实世界的实施
K 折交叉验证轮流将其中一个折(fold)留作评估之用。
分层抽样可以在分类任务的各个折中保持近似的类别比例。
预处理应当在每个训练折内部进行拟合,以避免数据泄漏。
嵌套交叉验证将内部的模型选择与外部评估相分离。
交叉验证的未来
根据数据结构和部署问题来选择验证方法。AutoML 或深度学习工作流并不普遍强制要求某一种特定的保留集策略;应当对所选方法给出合理解释并进行报告。
付诸实践
为什么这很重要
- 更清晰的判决. 它可以帮助您将清晰的技术声明与营销语言分开。
- 成本与预算. 在花费金钱或时间之前,您可以提出更好的实施问题。
- 团队与工作流程. 具有共同理解的团队可以做出更好的产品、政策和学习决策。
留意
- 不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。
- 基准测试可能看起来很强大,但实际性能却参差不齐。
- 忽视数据质量和评估计划通常会产生脆弱的结果。
后续步骤
- 从您需要的结果的简单语言定义开始。
- 在测试之前选择一种成功指标和一种失败条件。
- 使用代表性数据运行小型试点,而不是完善的演示集。
- 记录交叉验证在哪些方面有帮助以及在哪些方面更简单的方法更好。
不断探索
常见问题
什么是交叉验证?
交叉验证通过重复进行训练/验证划分,来估计模型或建模流程在留出数据上的表现。它支持模型评估,但评估结果取决于数据、划分设计和预处理。
在标准的 k 折交叉验证中,每个数据点用于测试多少次?
在 k 轮中,每个折叠都恰好作为测试集一次,因此每个样本都会被测试一次,并在其余样本上进行训练。
与单次训练/测试分割相比,k 折交叉验证的主要优点是什么?
对各折的结果取平均可以减少对某个特定训练/测试划分的依赖,但这并不能保证评估结果一定可靠;样本量、数据依赖性和划分设计依然非常重要。
为什么普通的k折交叉验证不适合时间序列预测?
混洗按时间排序的数据会将未来泄漏到训练中,因此时间序列 CV 使用仅根据过去的观察进行训练的前向链分割。
嵌套交叉验证的目的是什么?
嵌套交叉验证使用内部折进行模型选择,并使用外部折来估计该选择过程的性能,从而减少选择偏差。
在 k 折交叉验证中,常见的初始折数选择有哪些?
本指南指出 5 折和 10 折交叉验证是常见的选择,不过具体适用的设计仍需取决于数据和任务。