惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
月光博客
月光博客
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
U
Unit 42
腾讯CDC
爱范儿
爱范儿
J
Java Code Geeks
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
B
Blog
Stack Overflow Blog
Stack Overflow Blog
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - CharyGao

Spring 解决循环依赖为什么需要三级缓存,而不是两级缓存? SpringBoot服务优雅停机 Java 对接全球股票实时报价:高可用架构与异常处理 OpenAI Codex AI降智解决方案, 原因解析与系统提示词修改指南 OpenClaw vs Coze/Dify/n8n 帮你半小时内选对合适的AI Skills 热潮过去后,我重新理解了 AI Agent 的方向 智读致用|《埃隆之书》 《一人企业》 一人公司:The Agency 免费“雇佣“144个AI专家,虚拟团队走进现实 用微软Agent Framework打造智能博客生成系统+AI智能体军团 告别加班(第二期):月报还是Word排版?本地AI解您愁 居然可以在 Claude 桌面端用三方模型了! Claude Code 每次启动都要确认权限?一行配置永久解决 98.5% 的人都不知道:SSH 居然还有个“隐藏菜单” 强程序员在 AI 时代的赚钱路径 骚操作来了!Claude编程的42个实战技巧大全 面试官:“简历写着熟练使用 Claude Code,连 simplify 代码审查命令都不知道!”,我:“那又如何呢?” SpringBoot+ResponseBodyEmitter异步流式推送神技 加密后的数据如何进行模糊查询? 最适合新手安装的10个小龙虾🦞 skills来了! 周末和孩子必看的亲子电影合集,陪伴孩子成长的每一步 拒绝代码泄露与“屎山”迷航:GitNexus纯本地知识图谱+可视化关系网,引发GitHub 8800星狂欢 还原BatchEncryption(201610版本)混淆的批处理文件 用上这个Skill,你的Claude Code/Codex 将会比别人快5倍 -- 用分布式思维驯服AI任务编排 前端项目中定义vs code要安装的插件 vscode中claude code插件代理地址设置 2026新手必学:GPT-5.5高效提示词指南 解决 URLEncoder.encode 编码空格变 + 号 Springboot通过谷歌Kaptcha 组件,生成图形验证码 HTTP 与 SpringBoot 参数提交与接收协议方式
机器学习中的过拟合与欠拟合现象:理论与实践案例研究
CharyGao · 2026-02-09 · via 博客园 - CharyGao

机器学习领域中,过拟合(Overfitting)与欠拟合(Underfitting)是两个关键但相互对立的现象。理解这两种现象有助于构建更高效、更泛化的模型。下面我们将从理论、实际案例及代码示例等多角度进行探讨。

什么是过拟合

过拟合是指模型在训练数据上表现得非常好,但在新数据(测试集)上表现不佳。这表明模型过于复杂,捕捉到了数据中的噪声或非普遍模式,而这些模式并不能很好地泛化到其他数据。

一个经典的类比是考试中的死记硬背。假设学生通过背诵每道练习题的答案来准备考试,他们可能在练习题上得高分,但如果考试题目稍作修改,学生可能无法正确作答。这种过度记忆特定数据而缺乏灵活性的问题正是过拟合的核心表现。

实际案例:房价预测

假设我们试图预测某地区的房价。模型训练的数据集包含房屋面积、房龄、房间数等特征,以及房价标签。过拟合的模型可能会记住某些特定房屋的数据,比如 面积为 150 平方米、房龄 10 年的房子价格为 500,000,而忽略了这些特征之间更广泛的关系。这种情况下,模型在训练集上的误差几乎为零,但测试集上的误差可能非常高。

什么是欠拟合

欠拟合是指模型过于简单,无法捕捉数据中的主要模式,导致在训练集和测试集上都表现不佳。这通常是因为模型无法充分学习数据的底层规律。

将其比作学生完全不复习考试内容,结果考试时连基本的题型和概念都无法理解。

实际案例:同样是房价预测

若我们简单地用线性回归来拟合房价数据,而房价与特征之间实际上是非线性关系,则线性模型可能无法捕捉这种复杂关系,导致欠拟合。这种模型可能预测出某些房价明显偏离实际。

为什么会出现这两种现象?

1. 模型复杂度
  • 过拟合通常发生在模型过于复杂时,比如参数过多或采用了过高阶的多项式回归。
  • 欠拟合则往往是由于模型太简单,不足以捕捉数据中的重要模式。
2. 训练数据量
  • 过拟合容易在训练数据量较小时发生,模型可能会记住数据中的每一个细节。
  • 欠拟合则与训练数据的量无关,而是模型本身的表达能力不足。
3. 正则化
  • 过拟合可能是因为缺乏适当的正则化措施,导致模型自由度过高。
  • 欠拟合可能是正则化过强,限制了模型的学习能力。

如何解决过拟合与欠拟合?

1. 解决过拟合的方法
  • 增加训练数据
  • 使用正则化(如 L1 或 L2 正则化)
  • 减少模型复杂度
  • 使用交叉验证来评估模型
2. 解决欠拟合的方法
  • 增加模型复杂度
  • 提供更多有意义的特征
  • 减少正则化力度

代码示例:

以下是一个简单的代码示例,通过 scikit-learn 库演示过拟合和欠拟合现象:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

# 生成示例数据
np.random.seed(0)
x = np.sort(np.random.rand(40, 1) * 10, axis=0)
y = np.sin(x).ravel() + np.random.randn(40) * 0.1

# 分割数据集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=42)

# 欠拟合:线性模型
model_underfit = make_pipeline(PolynomialFeatures(degree=1), LinearRegression())
model_underfit.fit(x_train, y_train)

# 适当拟合:二次模型
model_goodfit = make_pipeline(PolynomialFeatures(degree=3), LinearRegression())
model_goodfit.fit(x_train, y_train)

# 过拟合:高阶多项式模型
model_overfit = make_pipeline(PolynomialFeatures(degree=15), LinearRegression())
model_overfit.fit(x_train, y_train)

# 绘制结果
plt.scatter(x, y, color='black', label='Data')
plt.plot(x, model_underfit.predict(x), label='Underfit Model', color='blue')
plt.plot(x, model_goodfit.predict(x), label='Good Fit Model', color='green')
plt.plot(x, model_overfit.predict(x), label='Overfit Model', color='red')
plt.legend()
plt.show()

python

运行

结论

从理论到实践,我们可以清晰地看到过拟合与欠拟合对模型性能的显著影响。理解并解决这两种现象是构建强大模型的关键。通过优化模型复杂度、正则化、数据量等因素,我们能够实现模型的良好泛化能力,提升机器学习系统的实际应用价值。

机器学习中的过拟合与欠拟合现象:理论与实践案例研究_机器学习中的过拟合与欠拟合现象:理论与实践案例研究-CSDN博客