过拟合是指创建一个模型 匹配(记住) 训练集 模型无法根据新数据做出正确的预测。 过拟合模型类似于一项在实验室中表现良好的发明, 在现实世界中毫无价值
在图 11 中,假设每个几何形状都代表一棵树的位置 在一个方形森林中。蓝色菱形标记了健康的树木所在的位置, 而橙色圆圈则表示生病的树所在的位置。
只需用心绘制任何形状(线条、曲线、椭圆形等),即可将两者分隔开来 从生病的树中挑选健康的树。然后,展开下一行以查看 一种可能的分离。
图 12 中所示的复杂形状成功地将以下所有除 2 之外的所有 和树。如果我们将这些形状视为模型 那么这就是一个了不起的成果 模型。
真的存在吗?真正出色的模型可以成功地对新样本进行分类。 图 13 显示了当同一模型根据新数据 测试集中的样本:
图 12 中所示的复杂模型在训练集上表现出色 但在测试集上却表现很差。这是模型的一个典型示例 过拟合。
拟合、过拟合和欠拟合
模型必须对新数据做出良好预测。 也就是说,您的目标是创建一个“适合”新数据。
如您所见,过拟合模型 但对新数据的预测不佳。一个 欠拟合模型 也未能对训练数据做出良好的预测。如果过拟合模型 比如一款产品在实验室中表现良好,但在现实中表现不佳, 欠拟合模型就好比一个产品, 实验。
泛化 与过拟合的情况完全相反。也就是说,良好泛化的模型构成良好 对新数据进行预测。您的目标是创建一个泛化模型 以及新数据。
检测过拟合
以下曲线可帮助您检测过拟合:
- 损失曲线
- 泛化曲线
损失曲线绘制模型的损失 与训练迭代次数进行比较。 显示两条或更多损失曲线的图称为泛化 曲线。以下 泛化曲线显示了两条损失曲线:
![图 15训练集的损失函数会逐渐
次数。验证集的损失函数也会下降,
但在迭代一定次数后,它就会开始上升。](https://developers.google.cn/static/machine-learning/crash-course/images/RegularizationTwoLossFunctions.png?authuser=7&hl=nb)
请注意,两条损失曲线最初的行为相似,然后开始发散。 也就是说,经过一定次数的迭代后,损失减少, 在训练集上保持稳定(收敛),但会增大 。这表明存在过拟合。
相比之下,良好拟合模型的泛化曲线则显示了两条损失曲线 具有相似形状的物体。
导致过拟合的原因是什么?
一般来说,过拟合是由以下一个或两个因素引起的 问题:
- 训练集不能充分代表真实数据(或者 验证集或测试集)。
- 该模型过于复杂。
泛化条件
模型基于训练集进行训练,但真正评估模型价值的是 它会对新样本进行预测,尤其是根据真实数据进行预测。 在开发模型时,测试集将充当真实数据的代理。 训练一个能够很好地泛化的模型意味着以下数据集条件:
- 示例必须是 独立同分布, 这就是说 不会相互影响。
- 数据集为 stationary,意思是 数据集没有随着时间的推移而发生显著变化。
- 数据集分区具有相同的分布。 也就是说,训练集中的样本在统计上与 验证集、测试集和真实数据中的样本。
请通过以下练习探索上述条件。
练习:检查您的掌握程度
![水平条分为三段:占条形的 70%
为训练集,15% 为验证集,15% 为验证集
测试集](https://developers.google.cn/static/machine-learning/crash-course/images/PartitionThreeSets.png?authuser=7&hl=nb)
挑战练习
您正在创建一个模型来预测乘客购买 购买特定路线的火车票。例如,模型可能会推荐 用户在 7 月 8 日购票,搭乘 7 月 23 日出发的火车。 该火车公司每小时都会根据各种因素更新价格 但主要考虑的是当前的可用席位数。具体来说:
- 如果有很多空座,票价通常很低。
- 如果座位很少,票价通常较高。
回答:现实世界中模型难以处理 反馈环。
例如,假设模型建议用户在 7 月 8 日购票。 根据模型推荐的一些乘客在 8:30 购票 7 月 8 日上午在晚上 9 点,火车公司上调了价格, 现在还有不到 1 个座位。使用该模型建议的乘客 价格变动。晚上,门票价格可能会比 。