基础知识指南

交叉验证

交叉验证是一种重采样技术,用于估计模型对未见过的数据的泛化能力。

概述

交叉验证是一种重采样技术,用于估计模型对未见过的数据的泛化能力。它可以更好地利用有限的数据,并提供比单个训练/测试分割更可靠的性能估计。

交叉验证位于核心人工智能工具包中。当你理解它时,其他人工智能主题就变得更容易评估和比较。

深入探讨

单个训练/测试分割是脆弱的:您获得的分数在很大程度上取决于哪些行恰好落在测试集中。交叉验证通过轮换测试集的角色来解决这个问题。在 k 折交叉验证中,您将数据划分为 k 个相等的折叠,对其中的 k-1 个进行训练,对保留的折叠进行评估,然后重复 k 次,以便每一行都被精确测试一次。对 k 分数进行平均可以得到更稳定的估计值以及变异性的度量。常见的选择是 5 折或 10 折。变体包括分层 k 折(保留不平衡数据的类比例)、留一法(k 等于样本数)以及从不训练未来来预测过去的时间序列分割。

技术洞察

交叉验证对于模型选择和超参数调整来说是最强大的:您可以通过平均验证分数来比较配置,而不是过度拟合一个分割。一个关键的陷阱是数据泄漏——任何“看到”整个数据集的预处理(缩放、特征选择、插补)都必须适合每个折叠,而不是在分割之前,否则你的估计将出现乐观偏差。嵌套交叉验证将调整与最终评估分开,以避免这种泄漏。

掌握交叉验证

交叉验证是一种重采样技术,用于估计模型对未见过的数据的泛化能力。它可以更好地利用有限的数据,并提供比单个训练/测试分割更可靠的性能估计。交叉验证位于核心人工智能工具包中。当你理解它时,其他人工智能主题就变得更容易评估和比较。为了建立深入的理解,请将交叉验证视为一种操作模型,而不是单一功能:定义期望的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,使用交叉验证的强大团队首先构建强大的概念模型,然后将这些模型映射到实际的生产约束。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

它可以帮助您将清晰的技术声明与营销语言分开。同时,不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

它可以帮助您将清晰的技术声明与营销语言分开。

它可以帮助您将清晰的技术声明与营销语言分开。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

在花费金钱或时间之前,您可以提出更好的实施问题。

在花费金钱或时间之前,您可以提出更好的实施问题。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

具有共同理解的团队可以做出更好的产品、政策和学习决策。

具有共同理解的团队可以做出更好的产品、政策和学习决策。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

交叉验证的未来

随着数据集和模型的增长,运行 k 个完整的训练周期变得昂贵,因此从业者越来越倾向于使用单个大型保留验证集进行深度学习,同时为小型或表格数据集保留交叉验证。默认情况下,自动化 ML 和 scikit-learn 的 GridSearchCV 和 Optuna 等工具将交叉验证融入到超参数搜索中。对更便宜的近似、防泄漏管道以及分组、分层和时间相关数据的正确验证的研究仍在继续。

现实世界的实施

在采用一种模型之前,使用 5 倍交叉验证来比较逻辑回归、随机森林和梯度提升。

在不平衡的欺诈检测数据集上应用分层 k 折叠,使每个折叠保持大致相同的稀有类别比例。

运行 GridSearchCV 或 RandomizedSearchCV,交叉验证每个超参数组合以选择最佳设置。

使用时间序列(滚动/前向链接)交叉验证来评估库存或需求预测器,而无需对未来数据进行培训。

实施模式

实践中的交叉验证

在采用一种模型之前,使用 5 倍交叉验证来比较逻辑回归、随机森林和梯度提升。

在采用一种模型之前,使用 5 倍交叉验证来比较逻辑回归、随机森林和梯度提升。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

实践中的交叉验证

在不平衡的欺诈检测数据集上应用分层 k 折叠,使每个折叠保持大致相同的稀有类别比例。

在不平衡的欺诈检测数据集上应用分层 k 折叠,使每个折叠保持大致相同的稀有类别比例。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

实践中的交叉验证

运行 GridSearchCV 或 RandomizedSearchCV,交叉验证每个超参数组合以选择最佳设置。

运行 GridSearchCV 或 RandomizedSearchCV,交叉验证每个超参数组合以选择最佳设置当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

实践中的交叉验证

使用时间序列(滚动/前向链接)交叉验证来评估库存或需求预测器,而无需对未来数据进行培训。

使用时间序列(滚动/前向链接)交叉验证来评估库存或需求预测器,而无需对未来数据进行培训。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。

!

基准测试可能看起来很强大,但实际性能却参差不齐。

!

忽视数据质量和评估计划通常会产生脆弱的结果。

实施路线图

1

从您需要的结果的简单语言定义开始。

从您需要的结果的简单语言定义开始。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在测试之前选择一种成功指标和一种失败条件。

在测试之前选择一种成功指标和一种失败条件。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

使用代表性数据运行小型试点,而不是完善的演示集。

使用代表性数据运行小型试点,而不是完善的演示集。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

记录交叉验证在哪些方面有帮助以及在哪些方面更简单的方法更好。

记录交叉验证在哪些方面有帮助以及在哪些方面更简单的方法更好。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索