图 7.14 和图 7.15 考察了一个疑问:交叉验证是否很好地估计了给定一个训练集 $\mathcal{T}$ 的条件测试误差 $\text{Err}_\mathcal{T}$(第 228 页的表达式 7.15),还是只估计了期望测试误差。根据图 7.3 的右上图的“回归/线性模型”场景生成 100 组训练集,得出每个训练集的作为特征子集大小的函数的条件误差曲线 $\text{Err}_\mathcal{T}$(图 7.14 左上图)。接下来两个图为十折和 N 折交叉验证,后者也被称为留一法(LOO)。每个图中的加粗红色曲线为期望误差 $\text{Err}$,加粗黑色曲线为期望交叉验证曲线。右下图展示了交叉验证对条件误差和期望误差的近似准确度。
由于 N 折交叉验证对每个新测试点都用几乎全训练集重新拟合,可能会认为它对 $\text{Err}_\mathcal{T}$ 的近似更好。另一方面,由于十折交叉验证是对有所差异的训练集的平均,可能会认为它对 $\text{Err}$ 的近似更好。从图中看,十折对 $\text{Err}_\mathcal{T}$ 的估计要好于 N 折,并且对 $\text{Err}$ 的估计更好。事实上,两个图中黑色曲线与红色曲线基本重合,说明两个交叉验证曲线对 $\text{Err}$ 都是基本无偏的,但十折的方差更低。Efron (1983) 也得到了类似的结果。
图 7.15 展示了 100 组模拟中十折和 N 折交叉验证误差估计对真实条件误差的散点图。尽管在散点图中看不出有相关性,但右下图中显示大部分的相关系数是负的,这个奇怪的现象在之前也被注意到过。这种负相关性也是两种交叉验证都对 $\text{Err}_\mathcal{T}$ 的估计不够好的原因。每个图中的虚线标记了 $\text{Err}(p)$,即大小为 $p$ 的最优子集模型的期望误差。与之前一样,两种形式的交叉验证都大致对期望误差无偏,但不同训练集的测试误差的变动比较大。
在图 7.3 的四个实验场景中,这个“回归/线性模型”场景的真实和预测测试误差之间的相关性最高。我们猜测这种现象也会发生在自助法和任意其他对条件预测误差估计的方法中。
综上,从某个特定的训练集数据中估计其测试误差一般来说并不简单。然而,交叉验证以及其他相关的方法可以较好地估计期望误差 $\text{Err}$。