如何解决过拟合与欠拟合,及理解k折交叉验证

news/2024/11/25 13:54:04/

模型欠拟合:在训练集以及测试集上同时具有较⾼的误差,此时模型的偏差较⼤;

模型过拟合:在训练集上具有较低的误差,在测试集上具有较⾼的误差,此时模型的⽅差较⼤。

在这里插入图片描述

如何解决⽋拟合:

  1. 添加其他特征项。组合、泛化、相关性、上下⽂特征、平台特征等特征是特征添加的重要⼿段,有时候特征项不够会导致模型⽋拟合。
  2. 添加多项式特征。例如将线性模型添加⼆次项或三次项使模型泛化能⼒更强。增加了⼆阶多项式,保证了模型⼀定的拟合程度。
  3. 可以增加模型的复杂程度。
  4. 减⼩正则化系数。正则化的⽬的是⽤来防⽌过拟合的,但是现在模型出现了⽋拟合,则需要减少正则化参数。

如何解决过拟合:

  1. 重新清洗数据,数据不纯会导致过拟合,此类情况需要重新清洗数据。
  2. 增加训练样本数量。
  3. 降低模型复杂程度。
  4. 增⼤正则项系数。
  5. 采⽤dropout⽅法,dropout⽅法,通俗的讲就是在训练的时候让神经元以⼀定的概率不⼯作。
  6. 减少迭代次数。
  7. 增⼤学习率。
  8. 添加噪声数据。
  9. 树结构中,可以对树进⾏剪枝。
  10. 减少特征项。

k折交叉验证

  1. 将含有N个样本的数据集,分成K份,每份含有N/K个样本。选择其中1份作为测试集,另外K-1份作为训练集,测试集就有K种情况。
  2. 在每种情况中,⽤训练集训练模型,⽤测试集测试模型,计算模型的泛化误差。
  3. 交叉验证重复K次,每份验证⼀次,平均K次的结果或者使⽤其它结合⽅式,最终得到⼀个单⼀估测,得到模型最终的泛化误差。
  4. 将K种情况下,模型的泛化误差取均值,得到模型最终的泛化误差。
  5. ⼀般 。 k折交叉验证的优势在于,同时重复运⽤随机产⽣的⼦样本进⾏训练和验证,每次的结果验证⼀次,10折交叉验证是最常⽤的。
  6. 训练集中样本数量要⾜够多,⼀般⾄少⼤于总样本数的50%。
  7. 训练集和测试集必须从完整的数据集中均匀取样。均匀取样的⽬的是希望减少训练集、测试集与原数据集之间的偏差。当样本数量⾜够多时,通过随机取样,便可以实现均匀取样的效果。

http://www.ppmy.cn/news/27226.html

相关文章

MySQL备份恢复(十二)

文章目录1. MySQL数据损坏类型1.1 物理损坏1.2 逻辑损坏2. DBA运维人员备份/恢复职责2.1 设计备份/容灾策略2.1.1 备份策略2.1.2 容灾策略2.2 定期的备份/容灾检查2.3 定期的故障恢复演练2.4 数据损坏时的快速准确恢复2.5 数据迁移工作3. MySQL常用备份工具3.1 逻辑备份方式3.2…

06_MySQL多表查询

多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也…

Web3中文|2023年zk赛道爆发,即将推出的Polygon zkEVM有多重要?

Crypto行业被广泛关注的零知识证明(Zero—Knowledge Proof)技术,在1980年就被数学家S.Goldwasser、S.Micali及C.Rackoff提出。 零知识证明涉及一系列步骤,可以实现密码学中的「可用而不可知」。 而区块链有着公开透明、不可篡改…

【Spring Cloud Alibaba】000-Spring Cloud Alibaba 问题集锦[持续更新]

【Spring Cloud Alibaba】000-Spring Cloud Alibaba 问题集锦[持续更新] 文章目录【Spring Cloud Alibaba】000-Spring Cloud Alibaba 问题集锦[持续更新]一、微服务相关1、什么是单体应用2、单体应用优缺点优点缺点3、单体应用使用场景4、什么是微服务架构5、微服务的特性6、微…

C++(41)-低版本升级到VS2019项目时遇到的问题(2)

1.错误码:MSB8066 代码为3 QT 项目老版本升级到新版本造成的, 1.重新加载项目: 扩展->QT VS tools->Open QT project files-> 2.添加QT模块:QT Project-Settings -> QT Modules2.无法打开QT的头文件 3.…

从WEB到PWA 开发-发布-安装

见意如题!本文主要来说说PWA开发!作为一个前端程序员,在没有任何Android/IOS的开发情况下,想想我们有多少种方法来开发一个原生移动应用程序!我们可以有非原生、混合开发,PWA等等手段。类似uniapp&#xff…

电动汽车充放电的优化调度(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【3】linux命令每日分享——mv改名或移动

大家好,这里是sdust-vrlab,Linux是一种免费使用和自由传播的类UNIX操作系统,Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途;linux涉及到IT行业的方方面面,在我们日常的学习中&…