模型拟合问题
1 课程概览
本课详细讲解机器学习中的模型拟合问题,包括欠拟合、过拟合、正好拟合三种情况的定义、产生原因及解决方法,并引入泛化能力和奥卡姆剃刀原则。通过天鹅识别案例直观展示过拟合与欠拟合的现象,强调KNN中K值过小导致过拟合、K值过大导致欠拟合的规律。
2 核心概念与定义
- 拟合(Fitting):模型在训练集和测试集上的表现情况。
- 欠拟合(Underfitting):模型在训练集和测试集上表现都不好。
- 过拟合(Overfitting):模型在训练集上表现好,但在测试集上表现不好。
- 正好拟合(Good Fit / Just Fitting):模型在训练集和测试集上表现都好,是最理想状态。
- 泛化能力(Generalization):模型在新数据集(非训练集)上表现好坏的能力,即模型的拟合情况。
- 奥卡姆剃刀(Occam's Razor):在相同泛化误差下,优先选择较简单的模型。
- 脏数据(Dirty Data):数据不纯或过于单一导致模型学到错误特征。
3 算法与模型详解
3.1 三种拟合情况对比
| 类型 | 训练集表现 | 测试集表现 | 原因 | 解决方法 |
|---|---|---|---|---|
| 欠拟合 | 差 | 差 | 模型过于简单,特征太少 | 增加特征,使模型复杂 |
| 正好拟合 | 好 | 好 | 模型复杂度适中 | — |
| 过拟合 | 好 | 差 | 模型过于复杂,数据不纯,数据量少 | 正则化、异常值检测、特征降维 |
3.2 天鹅识别案例
欠拟合场景:
- 训练数据:天鹅特征简单
- 学到的特征:有翅膀、嘴巴长(仅2个特征)
- 问题:模型过于简单,无法准确识别天鹅(鸭子也被识别为天鹅)
过拟合场景:
- 训练数据:只有白色天鹅
- 学到的特征:有翅膀、嘴巴长且弯曲、脖子有曲度、体型像2、略比鸭子大、白色的
- 问题:学到了"白色"这个脏特征,无法识别黑天鹅
3.3 拟合曲线图示
表现
↑
| ╱╲
| ╱ ╲ 过拟合
| ╱ ╲
| ╱ ╲
| ╱ ╲
| ╱ 正好拟合 ╲
| ╱ | ╲
| ╱ 欠拟合| ╲
|╱ | ╲
└────────┼────────→ 模型复杂度
3.4 泛化能力
- 定义:模型在非训练集(测试集)上表现好坏的能力。
- 关系:模型的拟合情况 = 泛化能力。
- 泛化能力越好,模型越接近正好拟合。
3.5 奥卡姆剃刀原则
如果两个模型具有相同的泛化误差,优先选择较简单的模型。
示例:模型A和模型B在测试集上准确率都是95%,优先选择结构更简单的模型。
3.6 KNN中K值与拟合的关系
| K值 | 拟合情况 | 原因 |
|---|---|---|
| K值过小(如K=1) | 过拟合 | 数据量少,模型学到大量脏数据,模型复杂 |
| K值过大(如K=N) | 欠拟合 | 模型过于简单,投票结果永远是多数类 |
4 数学原理与推导
本课无数学推导。
5 代码示例
本课无代码示例。
6 重难点与易错提醒
- ❗重点:欠拟合=训练集差+测试集差;过拟合=训练集好+测试集差;正好拟合=都好。
- ❗重点:模型简单→欠拟合;模型复杂→过拟合。
- ❗重点:KNN中K值过小→过拟合;K值过大→欠拟合。
- ⚠️易错:K值过小是过拟合(不是欠拟合)!数据量少导致学到脏数据,模型反而复杂。
- ⚠️易错:K值过大是欠拟合(不是过拟合)!K=N时投票结果永远是多数类,模型过于简单。
- 💡深入理解:泛化能力=模型拟合情况;奥卡姆剃刀=相同泛化误差下选简单模型。
7 课堂问答精选
Q: K值过小会发生过拟合还是欠拟合?
A: 过拟合。K值过小意味着数据量少,模型会学到大量脏数据,导致模型复杂,从而过拟合。
Q: K值过大会发生什么?
A: 欠拟合。K值过大(如K=N)时,模型过于简单,投票结果永远是训练集中数量最多的类别,忽略其他数据特征。
Q: 欠拟合和过拟合的解决方法分别是什么?
A:
- 欠拟合(模型简单):增加特征,使模型复杂。
- 过拟合(模型复杂):正则化(L1/L2)、异常值检测、特征降维。
8 本课小结
- 拟合=模型在训练集和测试集的表现情况。
- 欠拟合:训练集差+测试集差,模型过于简单。
- 过拟合:训练集好+测试集差,模型过于复杂/数据不纯/数据量少。
- 正好拟合:训练集好+测试集好,最理想状态。
- 泛化能力=模型拟合情况;奥卡姆剃刀=相同泛化误差选简单模型。
- KNN中:K值过小→过拟合,K值过大→欠拟合。
9 延伸思考与实践
- 思考:为什么K值过小会导致过拟合而不是欠拟合?
- 思考:奥卡姆剃刀原则在什么前提下才适用?
- 预习:L1正则化和L2正则化如何解决过拟合问题?