机器学习中的 K 折交叉验证

K折交叉验证、模型评估、泛化能力
机器学习中的 K 折交叉验证 cover image

K 折交叉验证是一种用于评估模型性能的技术。它对于估计模型对新的、未见过的数据的泛化程度特别有帮助。该过程涉及将数据集划分为“k”个大小大致相等的子集或折叠。以下是步骤的细分:

1.数据集分割:

数据集被分为“k”个相同大小的子集或折叠。例如,如果您有 1,000 个样本并选择“k”为 5,则每次折叠将包含 200 个样本。

2.迭代训练和评估:

该模型被训练“k”次。在每次迭代中,使用不同的折叠作为验证集,剩余的折叠用于训练。例如:

  • 迭代 1: 折叠 1 作为验证,折叠 2 到 k 用于训练

  • 迭代 2: 将第 2 次折叠作为验证,将第 1 次和第 3 次折叠到 k 用于训练

  • 迭代 3: 第 3 次折叠作为验证,第 1 次和第 2 次折叠以及第 4 次到 k 次用于训练

  • ...依此类推,直到所有折叠都被用作验证集。

3.绩效评估:

每次迭代后,都会使用验证集上选定的指标(例如准确度、精确度、召回率等)来评估模型的性能。对每次迭代的性能指标进行平均或组合,以给出模型性能的总体估计

4. 指标聚合:

对每次迭代的性能指标(例如准确度分数)进行平均或组合,以提供模型性能的总体评估。这个聚合指标代表了模型在未见过的数据上的预期性能。

K 折交叉验证相对于简单的训练/测试分割的优点

  • 更好地利用数据:K 折交叉验证可以更好地利用可用数据,因为每个样本都用于训练和验证

  • 减少性能估计的方差:它通过减少与单个训练/测试分割相关的方差来提供更可靠的模型性能估计。

  • 泛化:它有助于理解模型如何在不同的数据子集上执行,从而评估其泛化能力。

选择“k”的值

  • 较高的“k”值:使用较高的“k”值(例如 10 或更高)会导致验证集较小,这可能会导致性能估计中的较低的偏差,但计算成本较高

  • 较低的“k”值:使用较低的“k”值(例如 3 或 5)减少计算费用,但由于验证规模较小,可能会导致性能估计中出现较高的偏差套。

实际场景中

  • 对于大型数据集,较高的“k”值可能会导致计算成本高昂。

  • 当数据集较小时,较高的“k”可能无法在每个折叠中提供足够的数据来进行稳健的模型训练。

  • 一般来说,通常使用 5 或 10 等值,因为它们在计算效率和可靠的性能估计之间取得平衡。


Career Services background pattern

职业服务

Contact Section background image

让我们保持联系

Code Labs Academy © 2024 版权所有.