交叉验证是一项关键技术,用于评估模型在新数据上的表现。主要目标是评估模型的性能,以尽量减少过度拟合(模型从训练数据中学习太多并且在未见过的数据上表现不佳)和欠拟合(模型过于简单而无法捕获模型中的模式)等问题。数据)。
这个概念涉及将可用数据分成多个子集,通常是两个主要部分:训练集和验证集(有时也称为测试集)。
一种常见的技术是 k 折交叉验证:
-
数据集被分为大小大致相等的“k”个子集(或折叠)。
-
模型被训练“k”次,每次使用不同的折叠作为验证集,剩余的折叠作为训练集。
-
例如,在五折交叉验证中,数据被分为五个子集。该模型被训练五次,每次使用五个子集中不同的一个作为验证集,另外四个作为训练集。
-
对这“k”次迭代中的性能指标(如准确度、精确度、召回率等)进行平均,以获得最终的性能估计。
其他常见技术包括
留一法交叉验证 (LOOCV)
-
每个数据点用作验证集,模型根据其余数据进行训练。
-
对于大型数据集,此方法的计算成本很高,但由于它使用几乎所有数据进行训练,因此非常准确。
分层交叉验证
- 确保每次折叠都代表整个数据集。它保持每个折叠中的类分布,这对于不平衡的数据集很有帮助。
交叉验证至关重要,因为与单个训练测试分割相比,它可以更可靠地估计模型在未见过的数据上的性能。它通过提供对模型如何推广到新数据的更可靠的估计,有助于识别诸如过度拟合或欠拟合等问题。
通过使用交叉验证,机器学习从业者可以在模型选择、超参数调整以及评估模型对未见数据的泛化性能方面做出更好的决策。