一、过拟合问题的定义
过拟合是指机器学习模型在训练数据上表现过于优秀,甚至捕捉到了数据中的噪声和随机波动,导致在未知数据(测试集或实际应用)上泛化能力下降的现象。
通俗理解:
就像学生死记硬背了所有习题答案,却在遇到新题目时不会变通;或者过度依赖“考试技巧”而没真正理解知识,最终在新问题面前表现糟糕。
例子(一):回归
欠拟合(Underfit):线性模型(如 w1x + b)过于简单,无法捕捉数据规律,表现为高偏差(high bias),训练集误差大。
适度拟合(Just Right):二次模型(如 w1x+w2x2+b)平衡了复杂度与泛化能力,训练集拟合良好且能泛化。
过拟合(Overfit):高阶模型(如四次多项式)过度贴合训练数据(包括噪声),表现为高方差(high variance),虽训练误差极低,但泛化性能差。
图中通过“price-size”关系直观展示了不同拟合状态的特征。
泛化(Generalization)
泛化是指机器学习模型在训练数据上学习到的规律,能够很好地适用于从未见过的新数据的能力。
通俗理解:就像学生掌握了解题方法后,能灵活解答没做过的题目,而不是只会死记硬背原题答案。
例子(二):分类
欠拟合(Underfit):使用线性模型(如 z=w1x1+w2x2+b 搭配 Sigmoid 函数),无法捕捉数据非线性特征,表现为高偏差(high bias),分类效果差。
适度拟合(Just Right):引入二次项(如 x12,x22,x1x2),模型能更好划分数据边界,平衡拟合与泛化能力。
过拟合(Overfit):加入高阶交叉项(如 x12x2,x1x22),模型过度贴合训练数据(包括噪声),导致高方差(high variance),泛化性能下降。
图中通过分类边界的变化直观体现了不同拟合状态。
二、解决过拟合问题
1. 收集更多训练数据|Collect more training examples
问题展示:模型在现有数据(左侧“price-size”散点)上表现过拟合(曲线复杂,贴合所有噪声点)。
解决方案:通过“收集更多训练数据”(右侧箭头指向更大的数据集),可以约束模型学到更泛化的规律,缓解过拟合。
图中用“数据量增加”直观表达了过拟合的改善方向。
2. 选择包含或者排除的特征|Select features to include/exclude
问题展示:全部特征 + 少量数据 = 可能会过拟合
解决方案:选择一些特征包含进来或者是排除的
劣势:有些有用的特征会被丢弃
3. 正则化|Regularization
过拟合现象:模型使用高阶多项式(如含 x3,x4 项)且参数 wj 值较大时(如第二式),会过度贴合噪声,导致过拟合。
正则化作用:通过强制减小参数 wj 的数值(如第一、三式中的小权重),或直接剔除不重要的特征(如第三式),使模型更平滑,提升泛化能力。
图中通过对比参数大小,直观展示了正则化对模型复杂度的控制效果。