📚 核心概念
🎯 生活化理解
想象你在准备考试:
- 📖 欠拟合:只背了几道题,连练习题都做不好
- ✅ 合适拟合:理解了知识点,练习题和考试都能做好
- 📚 过拟合:把练习题的答案都背下来,但遇到新题就不会了
❌ 欠拟合
模型太简单
- 训练误差大
- 验证误差大
- 模型能力不足
- 无法捕获数据规律
例子:用直线拟合曲线数据
✅ 合适拟合
模型复杂度适中
- 训练误差小
- 验证误差小
- 泛化能力强
- 平衡良好
例子:用合适的曲线拟合数据
⚠️ 过拟合
模型太复杂
- 训练误差很小
- 验证误差大
- 泛化能力差
- 记忆了训练数据
例子:用高次多项式过拟合
🎮 交互式演示:三种拟合情况
模型复杂度对比
调整模型复杂度(多项式次数),观察训练集和测试集上的表现。
1
20
5
性能指标:
拟合方程:
📈 学习曲线
什么是学习曲线?
学习曲线展示模型性能随训练样本数量或训练时间的变化。通过观察训练误差和验证误差的关系,可以判断模型是否存在过拟合或欠拟合。
学习曲线可视化
如何解读学习曲线?
欠拟合的特征
- 训练误差和验证误差都很高
- 两条曲线平行或接近
- 增加数据量不会改善
- 需要增加模型复杂度
过拟合的特征
- 训练误差低,验证误差高
- 两条曲线差距大
- 增加数据量可能改善
- 需要减少模型复杂度或正则化
🔧 如何解决?
解决欠拟合
- 增加模型复杂度:使用更复杂的模型(如增加神经网络层数)
- 增加特征:添加更多相关特征
- 减少正则化:降低正则化强度
- 增加训练时间:训练更长时间
- 改进算法:使用更强的模型
解决过拟合
- 增加数据量:收集更多训练数据
- 数据增强:通过变换生成更多数据
- 正则化:L1正则化、L2正则化
- 降低模型复杂度:减少参数数量
- Dropout:随机丢弃一些神经元(神经网络)
- 早停:验证误差不再改善时停止训练
- 交叉验证:更好地评估模型
🛡️ 正则化
什么是正则化?
正则化是防止过拟合的重要技术,通过在损失函数中添加惩罚项来限制模型的复杂度。
L2正则化(岭回归)
$$J(\theta) = MSE + \lambda \sum_{i=1}^{n}\theta_i^2$$惩罚大的权重,使权重更小、更平滑
L1正则化(Lasso回归)
$$J(\theta) = MSE + \lambda \sum_{i=1}^{n}|\theta_i|$$可以将某些权重压缩到0,实现特征选择
正则化效果对比
0.00
⚖️ 偏差-方差权衡
偏差 (Bias) vs 方差 (Variance)
偏差 (Bias)
模型的平均预测值与真实值的差距
- 高偏差:模型太简单,欠拟合
- 低偏差:模型能很好拟合训练数据
方差 (Variance)
模型预测值的波动程度
- 高方差:模型太复杂,过拟合
- 低方差:模型预测稳定
总误差分解
$$总误差 = 偏差^2 + 方差 + 不可约误差$$目标:在偏差和方差之间找到平衡,使总误差最小
💡 最佳实践
模型选择流程
- 划分数据:训练集、验证集、测试集
- 从简单模型开始:先尝试简单的模型(如线性回归)
- 评估性能:观察训练误差和验证误差
- 调整复杂度:根据误差情况增加或减少复杂度
- 使用正则化:如果出现过拟合,添加正则化
- 交叉验证:使用交叉验证评估模型
- 最终测试:在测试集上评估最终模型