在实际中,可用的标记数据量通常 太小,无法留出验证样本,因为这会导致训练数据不足。 相反,广泛采用的一种称为 n折交叉验证 的方法被用来充分利用标记数据,既用于模型选择,也用于训练。

  • 表示算法的自由参数向量
    • 对于 的一个固定值
      • 将给定的样本 中的 个标记示例随机划分为 子样本 (subsample) 或 (fold)
        • 个折是一个大小为 的标记样本
          • 形式为
    • 对于任意的
      • 学习算法在除了第 个折之外的所有数据上训练
      • 生成假设
      • 如图 4.5a 所示, 的性能在第 个折上进行测试

图 4.5 -重交叉验证。 (a) 将训练数据划分为 5 折的示意图。 (b) 分类器的预测误差随训练样本大小 变化的典型曲线: 误差随训练点数的增加而减小。 左侧的红色线条标记了 值较小的区域,而右侧的红色线条标记了 值较大的区域。 01924b36-62e2-7d6a-9feb-ac32232c9804_11_459_275_900_392_0.jpg

  • 参数值 根据 的假设的平均错误来评估
    • 这个错误称为 交叉验证误差
    • 表示并定义为
  • 通常选择折数大小相等,即 对于所有

  • 如何选择

  • 合适的选择需要权衡

    • 较大的
      • 每个训练样本的大小为
      • 接近于 ,即完整样本的大小
      • 所有训练样本相似
      • 折用于测量误差相对较小
        • 交叉验证误差具有较小的偏差但较大的方差
    • 较小的
      • 训练样本更多样化
      • 样本大小明显小于
      • 折相对较大
      • 交叉验证误差具有较小的方差但较大的偏差
  • 在实际应用中, 通常选择为 5 或 10

  • -折交叉验证在模型选择中的使用:

    • 首先将完整的标记数据分为训练样本和测试样本
    • 大小为 的训练样本用于计算 -折交叉验证误差
    • 针对少量可能的
    • 自由参数 设置为使 最小的值
    • 使用参数设置 在大小为 的完整训练样本上训练算法
    • 其性能通过测试样本进行评估
  • -重交叉验证的特殊情况:

    • 被称为 留一交叉验证
    • 每次迭代恰好有一个实例被留出训练集的样本
  • 留一法的平均误差:

    • 是对算法平均误差的无偏估计
    • 可以为某些算法导出简单的保证
  • 留一法的计算成本:

    • 一般来说,计算成本很高
    • 需要在大小为 的样本上训练
    • 对于某些算法,计算效率非常高
      • (见练习 11.9)
  • 除了模型选择之外,-重交叉验证也常用于性能评估

    • 对于固定的参数设置
      • 整个标记样本被分为 个随机折
      • 不区分训练集和测试集
    • 报告的性能:
      • 整个样本的 -折交叉验证误差
      • 每个折上误差的标准差