讨论了:当模型在训练数据集上更准确时,它在测试数据集上却不一定更准确的原因。
3.11.1 训练误差和泛化误差
训练误差(training error):模型在训练数据集上表现出的误差。
泛化误差(generalization error):模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。
在机器学习里,我们通常假设训练数据集(训练题)和测试数据集(测试题)里的每一个样本都是从同一个概率分布中相互独立地生成的。
机器学习模型应关注降低泛化误差。
3.11.2 模型选择
在机器学习中,通常需要评估若干候选模型的表现并从中选择模型。这一过程称为模型选择(model selection)。
验证数据集
预留一部分在训练数据集和测试数据集以外的数据来进行模型选择。这部分数据被称为验证数据集,简称验证集(validation set)。
K K K 折交叉验证
在 K K K折交叉验证中,我们把原始训练数据集分割成 K K K个不重合的子数据集,然后我们做 K K K次模型训练和验证。每一次,我们使用一个子数据集验证模型,并使用其他 K − 1 K-1 K−1个子数据集来训练模型。在这 K K K次训练和验证中,每次用来验证模型的子数据集都不同。最后,我们对这 K K K次训练误差和验证误差分别求平均。
3.11.3 欠拟合和过拟合
欠拟合(underfitting):一模型无法得到较低的训练误差。
过拟合(overfitting):模型的训练误差远小于它在测试数据集上的误差
导致的两个因素:模型复杂度和训练数据集大小。
模型复杂度
以多项式函数拟合为例,给定一个由标量数据特征 x x x和对应的标量标签 y y y组成的训练数据集,多项式函数拟合的目标是找一个 K K K阶多项式函数
y ^ = b + ∑ k = 1 K x k w k \hat{y} = b + \sum_{k=1}^K x^k w_k y^=b+