机器学习实践(十三)—sklearn之欠拟合与过拟合

博客介绍了机器学习中的过拟合与欠拟合现象。欠拟合是模型过于简单,在训练和测试集都拟合不佳;过拟合是模型复杂,训练集拟合好但测试集偏差大。分析了两者产生的原因及解决办法,还阐述了正则化的概念、类别(L1和L2)及原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当训练数据训练的很好误差也不大的时候,为什么在测试集上面进行预测会有较大偏差呢?

当算法在某个数据集当中出现这种情况,可能就出现了过拟合现象。

一、什么是过拟合与欠拟合

  • 欠拟合

    一个假设在训练数据上不能获得更好的拟合,并且在测试数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)

  • 过拟合

    一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在测试数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)

二、原因以及解决办法

  • 原因
    • 欠拟合原因:

      • 学习到数据的特征过少
      • 模型复杂度较低
      • 正则化系数过大
    • 过拟合原因:

      • 训练数据过少
      • 原始特征过多
      • 模型过于复杂
      • 正则化系数过小
  • 解决办法

    几种降低过拟合和欠拟合风险的方法

三、正则化

  • 什么是正则化

    在学习的时候,数据提供的特征有些影响模型复杂度或者这个特征的数据点异常较多,所以算法在学习的时候尽量减少这个特征的影响(甚至删除某个特征的影响),这就是正则化

    注:调整时候,算法并不知道某个特征影响,而是去调整参数得出优化的结果

  • 正则化类别
    • L2 正则化
      • 作用:可以使得其中一些W的都很小,都接近于 0,削弱某个特征的影响
      • 优点:越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象
      • Ridge回归(岭回归)
    • L1 正则化
      • 作用:可以使得其中一些W的值直接为 0,删除这个特征的影响
      • LASSO回归(稀疏)
  • 原理
    • 线性回归的损失函数用最小二乘法,等价于当预测值与真实值的误差满足正态分布时的极大似然估计;

    • 岭回归的损失函数,是最小二乘法+L2范数,等价于当预测值与真实值的误差满足正态分布,且权重值也满足正态分布(先验分布)时的最大后验估计;

    • LASSO的损失函数,是最小二乘法+L1范数,等价于当预测值与真实值的误差满足正态分布,且权重值满足拉普拉斯分布(先验分布)时的最大后验估计

### 机器学习中的过拟合拟合 #### 定义 在机器学习领域,过拟合拟合是两个重要概念。过拟合描述的是当模型对训练数据过分适应时的情况,即模型不仅捕捉到了数据的真实模式,还记住了噪声其他不相关特征[^1]。这使得该模型虽然能在训练集上取得非常好的成绩,但在未见过的数据(如验证集或测试集)上的预测效果却大打折扣。 相比之下,拟合是指模型未能充分理解并表示输入数据中存在的关系,因此无论是在训练还是评估阶段都表现出较差的表现[^3]。简单来说,就是模型太简单以至于无法有效提取有用的信息或者因为其他原因而提前终止了有效的学习过程。 #### 区分两者的方法 为了判断一个给定的模型是否存在过拟合或者是处于拟合状态,可以观察其在不同数据集上的误差差异: - 如果模型对于训练样本能够给出很低甚至接近零误差点数的结果,但对于新来的独立同分布样例却产生了较高的错误率,则很可能是发生了过拟合; - 反之,如果无论是训练集还是未知的新实例,模型都无法达到令人满意的精度水平,并且两者的差距不大,那么就更倾向于认为这是由于拟合所引起的。 #### 应对策略 针对上述两种情形有不同的处理手段: ##### 处理拟合问题 可以通过以下几种方式改善模型性能以克服拟合现象: - **增加模型复杂度**:尝试构建更加复杂的架构,例如添加更多层到神经网络中去。 - **延长训练时间/迭代次数**:让算法运行足够长的时间直到它能更好地掌握数据内部结构。 - **调整超参数设置**:适当降低正则化强度等措施有助于提高表达力而不至于造成过度约束[^5]。 - **引入更多的特征变量**:有时候原始属性不足以支撑起一个好的分类器,这时可考虑加入额外的相关特性作为补充说明材料的一部分[^2]。 ##### 防范过拟合风险 为了避免发生过拟合状况的发生,通常会采取如下预防性行动: - **简化假设空间**:选择相对简单的函数形式来建立映射规则,从而减少不必要的自由度。 - **应用交叉验证技术**:利用K折划分法或其他相似机制来进行多次抽样检验,确保最终选定的那个版本具有良好的泛化潜力。 - **实施早期停止原则**:监控损失变化趋势图,在发现开始恶化之前及时中断优化流程。 - **增强数据多样性**:扩充现有记录规模的同时也注重质量控制,保证各类别间比例均衡合理[^4]。 ```python from sklearn.model_selection import train_test_split, cross_val_score X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) # 使用cross-validation 来帮助检测潜在的过拟合倾向 scores = cross_val_score(model, X_train, y_train, cv=5) print(f'Cross Validation Scores: {scores}') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡泡码客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值