过拟合、欠拟合和数据泄漏是什么?

欠拟合是规律没学会,过拟合是只记住训练数据,数据泄漏则让模型提前看到了不该知道的信息。

学习路线:AI 入门与 PyTorch 基础(1~20) · 第 8 课
Learning Path

AI 入门与 PyTorch 基础(1~20)

从 AI 基本概念、机器学习任务、深度学习直觉、PyTorch 入门到中文文本分类项目全貌。

学完本阶段你能做到:能说清 AI、机器学习、深度学习、PyTorch 训练流程和一个中文文本分类项目的大致链路。

推荐读法:零基础建议顺序阅读;已有基础的读者可以把它当作路线地图和查漏补缺清单。

查看完整阶段 · 20 篇
Lesson Guide

这一课怎么学

先看目标,再带着问题读正文。读完后用练习确认自己真的理解了。

本节你会学到

  • 说清楚「过拟合、欠拟合和数据泄漏是什么?」解决的核心问题
  • 知道它在「AI 入门与 PyTorch 基础(1~20)」中的位置
  • 把 过拟合、训练集、验证集和测试集、机器学习 这些关键词联系起来

前置知识

  • 建议先读完上一篇:准确率、精确率、召回率和 F1 到底怎么看?
  • 能区分输入、输出、数据和模型目标。

概念回顾

  • 【过拟合】过拟合就像背答案,训练题都会了,但真正考试时不一定会。 前面或后面会反复用到它。
  • 【训练集、验证集和测试集】训练集负责学习,验证集负责选择方案,测试集负责最后验收。 前面或后面会反复用到它。
  • 【机器学习】机器学习的重点不是手写所有规则,而是准备数据、定义目标,让模型自己找到可复用的模式。 前面或后面会反复用到它。
  • 【分类与回归】判断邮件是不是垃圾邮件是分类,预测房价是多少是回归。 前面或后面会反复用到它。

核心概念

常见误区

  • 不要只记定义,要追问它解决了什么问题。
  • 不要把概念孤立背下来,要放回数据到结果的完整链路里。

课后练习

  • 用 3 句话向一个零基础朋友解释「过拟合、欠拟合和数据泄漏是什么?」。
  • 打开概念库里的「过拟合」,补一遍它和本文的关系。
  • 读下一课「神经网络到底是什么?一篇给 AI 初学者的入门解释」前,先写下你认为它会解决的问题。

自检练习与参考答案

1. 用一句话说清「过拟合、欠拟合和数据泄漏是什么?」解决了什么问题。

合格答案不是复述标题,而是说清它在“数据进入模型、模型学习、结果评估或项目落地”中的作用。

2. 这篇文章和上一课或下一课是什么关系?

它应该为下一课「神经网络到底是什么?一篇给 AI 初学者的入门解释」铺路:读完后要知道下一课为什么自然出现。

下一步建议读「神经网络到底是什么?一篇给 AI 初学者的入门解释」。

模型分数高不一定代表模型真的好。它可能没有学会规律,也可能只记住了训练样本,甚至可能提前看到了答案。

这对应三个必须分清的问题:欠拟合、过拟合和数据泄漏。

第 8 课视频 · 过拟合、欠拟合和数据泄漏(约 1 分 31 秒)

欠拟合:连训练数据都没学好

欠拟合时,模型在训练集和验证集上的表现都比较差。

常见原因包括:

  • 模型太简单;
  • 特征无法表达任务需要的信息;
  • 训练轮数太少;
  • 学习率设置不合适;
  • 数据或标签本身存在问题。

解决欠拟合通常需要先检查数据与代码,再考虑增加模型能力或延长训练。

过拟合:训练题会做,换题就不会

过拟合时,模型在训练集上表现很好,但在验证集或测试集上明显变差。

模型不仅学到了可以推广的规律,还记住了训练数据中的噪声和偶然细节。

常见改进方法包括:

  • 增加有代表性的训练数据;
  • 降低模型复杂度;
  • 使用权重衰减、Dropout 等正则化方法;
  • 使用数据增强;
  • 根据验证集提前停止训练。

数据泄漏:模型偷看了答案

数据泄漏是训练时使用了真实预测场景中不应该获得的信息。

例如预测用户是否会退订,却把“退订时间”作为输入特征;或者先用全部数据计算标准化参数,再划分训练集和测试集。

另一种常见泄漏是重复数据或同一用户的高度相似样本同时出现在训练集和测试集中。模型看似泛化得很好,其实只是在识别熟悉内容。

怎样通过结果判断

训练集表现 验证集表现 可能问题
欠拟合或数据问题
过拟合
异常地好 异常地好 检查数据泄漏

这只是初步线索,不能代替对数据、划分方式和代码流程的检查。

到这里,我们已经有了机器学习地基

现在你已经知道 AI 的范围、任务类型、数据角色、数据集划分和评价方法。下一阶段可以进入 神经网络到底是什么,开始理解模型内部怎样从数据中学习。

Discussion

留言讨论