返回

系统误差评估方法与模型选择:测试集、交叉验证和留出法

人工智能

概述

在机器学习中,模型评估是不可或缺的一个环节,它是为了选择一个最优的模型,并对模型的泛化能力进行评估。在训练阶段,模型在训练集上学习并建立一个函数来拟合数据,但这个函数是否能够很好地拟合新数据,即它的泛化能力如何,是需要进一步评估的。

模型评估的一般步骤包括:

  1. 将数据集 D 划分为两个互斥的集合,其中一个集合作为训练集 S,另一个作为测试集 T,即 .
  2. 在 S 上训练出模型后,用 T 来评估其测试误差,作为对泛化误差的估计。

不同的划分将导致不同的训练/测试集,相应的,模型的评估结果也会有差别。因此,单次使用留出法得到的估计结果往往不够准确,需要使用重复随机采样技术来降低评估误差的方差。

常用的误差评估方法包括:

  • 测试集法
  • 交叉验证法
  • 留出法

测试集法

测试集法是最简单的评估方法,也是最直观的一种。将数据集 D 随机划分为训练集 S 和测试集 T,比例通常为 70% 和 30%,训练模型后,直接用测试集来评估模型的泛化误差,即

\hat{P}_e = \frac{1}{|T|} \sum_{x \in T} I(y \ne \hat{y})

其中,|T| 表示测试集的大小,I 是指示函数,当预测值 \hat{y} 与真实值 y 不相等时取 1,否则取 0。

测试集法简单易行,但存在一些缺点:

  • 测试集的大小对评估结果有很大影响,当测试集较小时,评估结果可能不够准确。
  • 测试集与训练集是独立的,这可能会导致评估结果与模型在实际应用中的性能不一致。

交叉验证法

交叉验证法可以克服测试集法的一些缺点。它将数据集 D 随机划分为 k 个互斥的子集,称为折(fold)。然后,依次将其中一个子集作为测试集,其余 k-1 个子集作为训练集,训练模型并评估其在测试集上的性能。如此重复 k 次,将 k 次评估结果平均得到最终的评估结果。

交叉验证法比测试集法更可靠,因为它减少了评估结果对测试集划分的依赖性。k 的选择通常为 5 或 10,但具体数值取决于数据集的大小和模型的复杂程度。

留出法

留出法与测试集法类似,但它将数据集 D 划分为训练集 S 和测试集 T 后,不再对训练集进行划分。因此,留出法只进行一次评估,其评估结果与测试集法一样,对测试集的划分比较敏感。

留出法的优点是简单易行,不需要像交叉验证法那样重复多次训练和评估模型。但它的缺点是评估结果不够准确,因此通常只在数据集较小或模型比较简单的情况下使用。

比较

方法 优点 缺点
测试集法 简单易行 评估结果对测试集划分敏感
交叉验证法 评估结果更可靠 需要重复多次训练和评估模型
留出法 简单易行 评估结果不够准确

结论

在机器学习中,模型评估是不可或缺的一个环节。常用的误差评估方法包括测试集法、交叉验证法和留出法。每种方法都有其优缺点,在实际应用中需要根据具体情况选择合适的方法。