当前位置:首页 > 学习资源 > 讲师博文 > 机器学习中的过拟合和欠拟合是什么?为什么训练准确率高不代表模型好?

机器学习中的过拟合和欠拟合是什么?为什么训练准确率高不代表模型好? 时间:2026-09-30      来源:华清远见

在机器学习和深度学习实践中,很多人第一次训练模型时,看到训练准确率一路飙升到 99%,会非常兴奋:模型是不是已经成功了?但真正上线后却发现效果很差。原因很简单:训练准确率高,只说明模型会做“练习题”,不代表它会做“考试题”。

机器学习的目标从来不是记住训练数据,而是从训练数据中学习规律,并对未见过的数据做出准确预测。这种能力叫泛化能力。而影响泛化能力的两大常见问题,就是过拟合和欠拟合。

一、什么是过拟合和欠拟合?

过拟合是指模型在训练数据上表现非常好,但在未见过的测试数据上表现很差。它学到的不只是数据中的真实规律,还包括噪声、异常值甚至错误标签。

欠拟合是指模型在训练数据和测试数据上都表现不好。它没有捕捉到数据中的基本规律,模型能力不足或训练不充分。

可以用学生备考来类比:

欠拟合:学生只学了皮毛,连练习题都做不对,考试自然也不行。

过拟合:学生死记硬背了练习册答案,练习题全对,但题目稍微一变就不会。

理想模型:学生真正理解了知识,练习题和考试题都能做得不错。

对应到机器学习:

二、为什么训练准确率高,不代表模型好?

答案可以概括为一句话:

训练准确率衡量的是“拟合已知数据的能力”,而不是“预测未知数据的能力”。

具体原因有几点:

1. 模型可能只是“记住”了训练数据

如果模型足够复杂,它完全可以记住整个训练集,甚至把随机标签也拟合到 100%。例如,一个足够深的决策树可以把每个训练样本单独分到一类,训练准确率满分,但测试时可能一塌糊涂。这就是典型的过拟合。

2. 训练准确率高,但泛化误差可能很高

真正重要的是泛化误差。我们可以粗略理解为:

泛化误差=偏差2+方差+不可约误差

过拟合时,训练误差很低,但训练集和测试集表现差距很大,所以泛化误差仍然很高。

3. 数据本身可能有问题

如果训练数据量太少、噪声太多、存在异常值或错误标签,模型很容易把这些错误信息当成规律学习。此外,如果训练集和测试集分布不一致,训练准确率也会虚高,但实际部署效果很差。

4. 准确率本身可能误导人

在类别极不平衡的任务中,准确率尤其具有欺骗性。例如 99% 的样本都是负类,模型全部预测为负类,也能得到 99% 的准确率,但它根本没有识别正类的能力。这时更应该看精确率、召回率、F1、AUC 等指标。

5. 正确做法:看验证集、测试集和交叉验证

评估模型时,不能只看训练准确率。应该划分训练集、验证集和测试集,使用交叉验证,观察训练误差和验证误差的变化。如果训练误差很低、验证误差很高,很可能就是过拟合;如果两者都很高,通常是欠拟合。

三、过拟合:模型“学得太多了”

常见原因

模型复杂度过高,参数太多;

训练数据不足;

数据噪声大、异常值多、标签错误;

特征过多,包含大量无关特征;

训练时间过长,过度拟合训练集;

正则化不足。

解决方法

增加训练数据:增加高质量、有代表性的数据通常能显著提升泛化能力;

数据增强:如图像旋转、平移、缩放、裁剪等;

降低模型复杂度:减少层数、神经元数量或参数规模;

正则化:L1、L2 正则化,限制权重过大;

Dropout:随机丢弃部分神经元,打破共适应;

早停法:验证误差开始上升时停止训练;

交叉验证:更可靠地评估模型;

特征选择与降维:去掉无关或弱相关特征;

集成学习:Bagging、Boosting 等方法提升稳定性。

案例 - 过拟合

四、欠拟合:模型“学得太少了”

常见原因

模型过于简单,无法捕捉复杂关系;

特征不足或特征工程不充分;

正则化过度,模型被限制得太死;

训练轮数不足,优化不充分;

数据噪声过多,模型难以区分信号和噪声。

解决方法

提高模型复杂度:增加层数、神经元数量、参数规模;

特征工程:特征选择、组合、变换,引入更有信息量的特征;

降低正则化强度:如果正则化过强导致欠拟合,应适当减弱;

延长训练时间:增加迭代轮数,让模型充分学习;

改进优化方法:调整学习率、优化器、批大小等;

集成学习:组合多个模型,提高整体表达能力。

注意:L1/L2 正则化主要用于抑制过拟合。如果模型已经欠拟合,再盲目加强正则化,只会让效果更差。

案例 - 欠拟合

六、总结

训练准确率高,并不等于模型好。它可能只是说明模型“背下了答案”。真正优秀的模型,应该在训练集和未见过的测试集上都表现良好,并且两者差距较小。

欠拟合:学得太少,训练和测试都不好;

过拟合:学得太多,训练很好但测试很差;

好模型:学得刚刚好,能举一反三。

因此,在机器学习项目中,不要只盯着训练准确率。要关注验证集、测试集、交叉验证和业务指标,平衡欠拟合与过拟合,最终提升模型的泛化能力。记住一句话:

训练准确率高只是起点,泛化能力好才是终点。

上一篇:ARM处理器为什么需要不同工作模式?异常与中断机制基础解析

下一篇:FreeRTOS任务通信机制一次理清: 队列、信号量、互斥量到底有什么区别?

戳我查看嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2026 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5,京公海网安备11010802025203号

回到顶部