机器学习笔记:如何解决过拟合问题(Datawhale X 李宏毅苹果书 AI夏令营)

1. 过拟合现象

定义:在机器学习中,当模型在训练集上表现良好,但在测试集(或新数据)上表现很差时,称为过拟合。这是由于模型过于复杂,学习了训练集中的噪声和细节,而非数据背后的真实规律而造成的。

2. 应对方法

2.1 增加训练集

核心思路:通过增加训练样本的数量,让模型学习更广泛的数据分布,从而减少过拟合的风险。

还有就是可以根据问题的特性,通过变换已有数据来生成新的训练样本。例如,在图像识别中,可以对图片进行翻转、裁剪、缩放等操作。但需注意,增强方式需符合数据特性,避免引入不合理的噪声。

2.2 限制模型复杂度

核心思路:通过减少模型的参数数量或采用更简单的模型结构,来限制模型的灵活性,防止其过度拟合训练数据。

  • 具体方法
    • 减少参数:在深度学习中,减少神经网络的层数或每层神经元的数量。
    • 共用参数:让模型中的某些参数共享相同值。
    • 选择适合的模型架构:如使用卷积神经网络(CNN)替代全连接网络(fully-connected network),因为CNN通过卷积层等结构对模型灵活性进行了限制,更适合处理图像数据。
    • 特征选择:减少输入数据的特征数量,只保留对预测目标有重要影响的特征。

2.3 使用正则化技术

  • 早停(Early Stopping):在训练过程中监控验证集上的损失,当验证集损失开始上升时停止训练,防止模型在训练集上过拟合。
  • 正则化(Regularization):在损失函数中加入正则化项,如L1或L2正则化,以惩罚模型参数的复杂度,从而引导模型学习更简单的表示。
  • 丢弃法(Dropout):在训练过程中随机丢弃一部分神经元(及其连接),使模型每次训练时看到的网络结构不同,从而减少神经元之间的共适应关系,提高模型的泛化能力。

3. 平衡模型复杂度

  • 过拟合与欠拟合:模型复杂度太低会导致欠拟合(模型偏差大),而模型复杂度太高则会导致过拟合。
  • 选择中庸的模型:通过交叉验证等方法,选择一个既能在训练集上表现良好,又能在验证集上保持较好泛化能力的模型。

4. 交叉验证

  • 定义:将训练集进一步划分为训练子集和验证子集,通过多次训练-验证过程,评估不同模型或参数设置的效果,并选择最佳模型。避免在测试集上直接调整模型,减少过拟合风险,提高模型在未知数据上的表现。
    其常用方法由留一验证,k折交叉验证,分层交叉验证等。
  • k折交叉验证图如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值