过拟合

过拟合是指创建一个模型 匹配(记住训练集 模型无法根据新数据做出正确的预测。 过拟合模型类似于一项在实验室中表现良好的发明, 在现实世界中毫无价值

在图 11 中,假设每个几何形状都代表一棵树的位置 在一个方形森林中。蓝色菱形标记了健康的树木所在的位置, 而橙色圆圈则表示生病的树所在的位置。

图 11. 该图包含大约 60 个点
            而另一半则是生病的树。
            健康的树主要位于东北象限,
            健康的树进入了西北象限。生病的树
            主要分布在东南象限,但也有一些生病的树
            会扩散到其他象限。
图 11. 训练集:方形森林中健康和生病的树的位置。

 

只需用心绘制任何形状(线条、曲线、椭圆形等),即可将两者分隔开来 从生病的树中挑选健康的树。然后,展开下一行以查看 一种可能的分离。

图 12 中所示的复杂形状成功地将以下所有除 2 之外的所有 和树。如果我们将这些形状视为模型 那么这就是一个了不起的成果 模型。

真的存在吗?真正出色的模型可以成功地对样本进行分类。 图 13 显示了当同一模型根据新数据 测试集中的样本:

图 13。新一批健康和生病的树上叠加着
            如图 12 所示。该模型将许多
            数据。 <ph type="x-smartling-placeholder">
</ph> 图 13. 测试集:用于区分生病的树和健康的树的复杂模型。

 

图 12 中所示的复杂模型在训练集上表现出色 但在测试集上却表现很差。这是模型的一个典型示例 过拟合

拟合、过拟合和欠拟合

模型必须对新数据做出良好预测。 也就是说,您的目标是创建一个“适合”新数据。

如您所见,过拟合模型 但对新数据的预测不佳。一个 欠拟合模型 也未能对训练数据做出良好的预测。如果过拟合模型 比如一款产品在实验室中表现良好,但在现实中表现不佳, 欠拟合模型就好比一个产品, 实验。

图 14.笛卡尔图。X 轴标有“预测质量”标签
            效果。”Y 轴标有
            真实数据”。曲线从原点开始,然后逐渐上升
            但随后也会迅速下滑。曲线的左下部分
            (基于真实数据的预测质量较差,
            使用训练集执行预测)标记为“欠拟合模型”。通过
            曲线的右下部分(对
            真实数据,但在训练集上实现高质量预测)
            标记为“过拟合模型”。曲线的峰值(高画质)
            对真实数据做出的预测,且预测质量为中等
            )标记为“拟合模型”。
图 14. 欠拟合、拟合和过拟合模型。

 

泛化 与过拟合的情况完全相反。也就是说,良好泛化的模型构成良好 对新数据进行预测。您的目标是创建一个泛化模型 以及新数据。

检测过拟合

以下曲线可帮助您检测过拟合:

  • 损失曲线
  • 泛化曲线

损失曲线绘制模型的损失 与训练迭代次数进行比较。 显示两条或更多损失曲线的图称为泛化 曲线。以下 泛化曲线显示了两条损失曲线:

图 15训练集的损失函数会逐渐
            次数。验证集的损失函数也会下降,
            但在迭代一定次数后,它就会开始上升。
图 15. 强烈暗示过拟合的泛化曲线。

 

请注意,两条损失曲线最初的行为相似,然后开始发散。 也就是说,经过一定次数的迭代后,损失减少, 在训练集上保持稳定(收敛),但会增大 。这表明存在过拟合。

相比之下,良好拟合模型的泛化曲线则显示了两条损失曲线 具有相似形状的物体。

导致过拟合的原因是什么?

一般来说,过拟合是由以下一个或两个因素引起的 问题:

  • 训练集不能充分代表真实数据(或者 验证集或测试集)。
  • 该模型过于复杂。

泛化条件

模型基于训练集进行训练,但真正评估模型价值的是 它会对新样本进行预测,尤其是根据真实数据进行预测。 在开发模型时,测试集将充当真实数据的代理。 训练一个能够很好地泛化的模型意味着以下数据集条件:

  • 示例必须是 独立同分布, 这就是说 不会相互影响。
  • 数据集为 stationary,意思是 数据集没有随着时间的推移而发生显著变化。
  • 数据集分区具有相同的分布。 也就是说,训练集中的样本在统计上与 验证集、测试集和真实数据中的样本。

请通过以下练习探索上述条件。

练习:检查您的掌握程度

请考虑以下数据集分区。
水平条分为三段:占条形的 70%
                     为训练集,15% 为验证集,15% 为验证集
                     测试集
为了确保训练集中的样本能够得到训练集内的样本, 结果与 验证集和测试集?
之前大规模重排数据集中的样本 对它们进行分区。
可以。良好的样本重排可以让分区更有意义 有可能在统计上相似。
按时间由近到远对样本进行排序。
如果数据集中的样本不是平稳的,则 排序可使分区减少 相似。
什么也不做。有了足够多的样本,平均值定律 可以自然地确保 统计相似性。
遗憾的是,事实并非如此。示例 可能与数据集某些部分中的部分不同 部分。
一项在线媒体服务正在开发一个模型来预测热门程度 。通过 流式服务计划使用数据集训练模型 包含数亿个样本,涵盖了之前的 十年。此模型会遇到问题吗?
很有可能。观看者的过去的行为无法改变的方式 预测。
可以。观看者的品味并不是一成不变的。它们在不断变化。
当然不是。数据集足够大,可以生成 预测。
遗憾的是,而且它们的味道也并非一成不变。
一般不会。观看者的可预见的周期性变化。 十年的数据将使模型能够做出良好预测 以及未来趋势方面的预测
虽然娱乐的某些方面有些循环性, 根据过往娱乐记录训练而成的模型, 无法预测未来几年。
一个模型旨在预测人们步行 1 英里所需的时间 根据天气数据(温度、和 特定城市的降水量) 显著增加。你能否通过 虽然天气读数会随着时间推移而 ?
可以,可以根据此数据集构建和测试模型。 您只需确保平均分区数据即可, 所有四个季节的数据平均分布到 不同的分区
假设此数据集包含足够的温度、露水样本 然后就可以构建并测试模型了, 数据。您只需确保数据已分区 平均分配四季的数据 不同的分区。

挑战练习

您正在创建一个模型来预测乘客购买 购买特定路线的火车票。例如,模型可能会推荐 用户在 7 月 8 日购票,搭乘 7 月 23 日出发的火车。 该火车公司每小时都会根据各种因素更新价格 但主要考虑的是当前的可用席位数。具体来说:

  • 如果有很多空座,票价通常很低。
  • 如果座位很少,票价通常较高。
您的模型的低 在验证集和测试集上出现损失,但有时 对真实数据做出的预测非常糟糕。为什么?
点击此处查看答案