了解交叉验证在机器学习中的强大作用,以提高模型准确性、防止过度拟合并确保性能稳定。
交叉验证是机器学习(ML)中的一项重要统计技术,用于评估模型在独立数据集上的泛化程度。交叉验证将数据分成多个子集或 "折叠",而不是将数据单一地分成训练集和测试集。模型在一些折叠集上反复训练,然后在剩余的折叠集上进行评估。与简单的训练/测试拆分相比,这一过程能更可靠地估计模型在未见数据上的性能,从而大大降低过拟合的风险,即模型对训练数据的学习效果太好,包括其噪声。
使用最广泛的方法是 K 折交叉验证法。该过程包括以下步骤
许多流行的 ML 库(如Scikit-learn)都提供了各种交叉验证策略的高效实现,包括分层 K-折(对于不平衡数据集至关重要)和留空 CV。
交叉验证是可靠模型评估的基石,主要有以下几个原因:
简单的训练/验证分割只需将数据分割一次:一部分用于训练,一部分用于验证。虽然很容易实现,但其主要缺点是性能评估在很大程度上取决于哪些特定数据点恰好属于验证集。特别 "容易 "或 "困难 "的验证集都可能导致过于乐观或悲观的性能估计。
交叉验证通过系统地使用不同的子集进行验证来克服这一问题,确保每个数据点都能准确地参与一次评估过程。这样就能对模型的鲁棒性进行更稳定、更可靠的评估。值得注意的是,最终测试数据集在训练和基于交叉验证的调整过程中都没有出现过,仍应保留用于最终评估所选模型。Ultralytics 提供了使用Ultralytics YOLO 实施K 折交叉验证的详细指导。
交叉验证是在不同领域构建可靠的人工智能系统所不可或缺的:
其他应用包括评估图像分割模型、情感分析等自然语言处理(NLP)任务以及金融建模中的风险评估。Ultralytics HUB等平台通常集成或促进此类评估技术,以简化开发生命周期。