在实际中,可用的标记数据量通常 太小,无法留出验证样本,因为这会导致训练数据不足。 相反,广泛采用的一种称为 n折交叉验证 的方法被用来充分利用标记数据,既用于模型选择,也用于训练。
- 令 表示算法的自由参数向量
- 对于 的一个固定值
- 将给定的样本 中的 个标记示例随机划分为 个 子样本 (subsample) 或 折 (fold)
- 第 个折是一个大小为 的标记样本
- 形式为
- 第 个折是一个大小为 的标记样本
- 将给定的样本 中的 个标记示例随机划分为 个 子样本 (subsample) 或 折 (fold)
- 对于任意的
- 学习算法在除了第 个折之外的所有数据上训练
- 生成假设
- 如图 4.5a 所示, 的性能在第 个折上进行测试
- 对于 的一个固定值
图 4.5 -重交叉验证。 (a) 将训练数据划分为 5 折的示意图。 (b) 分类器的预测误差随训练样本大小 变化的典型曲线: 误差随训练点数的增加而减小。 左侧的红色线条标记了 值较小的区域,而右侧的红色线条标记了 值较大的区域。
- 参数值 根据 的假设的平均错误来评估
- 这个错误称为 交叉验证误差
- 用 表示并定义为
-
通常选择折数大小相等,即 对于所有
-
如何选择 ?
-
合适的选择需要权衡
- 较大的 :
- 每个训练样本的大小为
- 接近于 ,即完整样本的大小
- 所有训练样本相似
- 第 折用于测量误差相对较小
- 交叉验证误差具有较小的偏差但较大的方差
- 较小的 :
- 训练样本更多样化
- 样本大小明显小于
- 第 折相对较大
- 交叉验证误差具有较小的方差但较大的偏差
- 较大的 :
-
在实际应用中, 通常选择为 5 或 10
-
-折交叉验证在模型选择中的使用:
- 首先将完整的标记数据分为训练样本和测试样本
- 大小为 的训练样本用于计算 -折交叉验证误差
- 针对少量可能的 值
- 自由参数 设置为使 最小的值
- 使用参数设置 在大小为 的完整训练样本上训练算法
- 其性能通过测试样本进行评估
-
-重交叉验证的特殊情况:
- 被称为 留一交叉验证
- 每次迭代恰好有一个实例被留出训练集的样本
-
留一法的平均误差:
- 是对算法平均误差的无偏估计
- 可以为某些算法导出简单的保证
-
留一法的计算成本:
- 一般来说,计算成本很高
- 需要在大小为 的样本上训练 次
- 对于某些算法,计算效率非常高
- (见练习 11.9)
-
除了模型选择之外,-重交叉验证也常用于性能评估
- 对于固定的参数设置 :
- 整个标记样本被分为 个随机折
- 不区分训练集和测试集
- 报告的性能:
- 整个样本的 -折交叉验证误差
- 每个折上误差的标准差
- 对于固定的参数设置 :