如何防止我的模型过拟合?这篇文章给出了6大必备方法
选自Medium
作者:Mahitha Singirikonda
机器之心编译
编辑:小舟
正如巴菲特所言:「近似的正确好过精确的错误。」
在机器学习中,过拟合(overfitting)会使模型的预测性能变差,通常发生在模型过于复杂的情况下,如参数过多等。本文对过拟合及其解决方法进行了归纳阐述。
在机器学习中,如果模型过于专注于特定的训练数据而错过了要点,那么该模型就被认为是过拟合。该模型提供的答案和正确答案相距甚远,即准确率降低。这类模型将无关数据中的噪声视为信号,对准确率造成负面影响。即使模型经过很好地训练使损失很小,也无济于事,它在新数据上的性能仍然很差。欠拟合是指模型未捕获数据的逻辑。因此,欠拟合模型具备较低的准确率和较高的损失。
如何确定模型是否过拟合?
构建模型时,数据会被分为 3 类:训练集、验证集和测试集。训练数据用来训练模型;验证集用于在每一步测试构建的模型;测试集用于最后评估模型。通常数据以 80:10:10 或 70:20:10 的比率分配。
在构建模型的过程中,在每个 epoch 中使用验证数据测试当前已构建的模型,得到模型的损失和准确率,以及每个 epoch 的验证损失和验证准确率。模型构建完成后,使用测试数据对模型进行测试并得到准确率。如果准确率和验证准确率存在较大的差异,则说明该模型是过拟合的。
如果验证集和测试集的损失都很高,那么就说明该模型是欠拟合的。
如何防止过拟合
交叉验证
交叉验证是防止过拟合的好方法。在交叉验证中,我们生成多个训练测试划分(splits)并调整模型。K-折验证是一种标准的交叉验证方法,即将数据分成 k 个子集,用其中一个子集进行验证,其他子集用于训练算法。
交叉验证允许调整超参数,性能是所有值的平均值。该方法计算成本较高,但不会浪费太多数据。交叉验证过程参见下图:
用更多数据进行训练
用更多相关数据训练模型有助于更好地识别信号,避免将噪声作为信号。数据增强是增加训练数据的一种方式,可以通过翻转(flipping)、平移(translation)、旋转(rotation)、缩放(scaling)、更改亮度(changing brightness)等方法来实现。
移除特征
移除特征能够降低模型的复杂性,并且在一定程度上避免噪声,使模型更高效。为了降低复杂度,我们可以移除层或减少神经元数量,使网络变小。
早停
对模型进行迭代训练时,我们可以度量每次迭代的性能。当验证损失开始增加时,我们应该停止训练模型,这样就能阻止过拟合。
下图展示了停止训练模型的时机:
正则化
正则化可用于降低模型的复杂性。这是通过惩罚损失函数完成的,可通过 L1 和 L2 两种方式完成,数学方程式如下:
L1 惩罚的目的是优化权重绝对值的总和。它生成一个简单且可解释的模型,且对于异常值是鲁棒的。
L2 惩罚权重值的平方和。该模型能够学习复杂的数据模式,但对于异常值不具备鲁棒性。
这两种正则化方法都有助于解决过拟合问题,读者可以根据需要选择使用。
Dropout
Dropout 是一种正则化方法,用于随机禁用神经网络单元。它可以在任何隐藏层或输入层上实现,但不能在输出层上实现。该方法可以免除对其他神经元的依赖,进而使网络学习独立的相关性。该方法能够降低网络的密度,如下图所示:
总结
过拟合是一个需要解决的问题,因为它会让我们无法有效地使用现有数据。有时我们也可以在构建模型之前,预估到会出现过拟合的情况。通过查看数据、收集数据的方式、采样方式,错误的假设,错误表征能够发现过拟合的预兆。为避免这种情况,请在建模之前先检查数据。但有时在预处理过程中无法检测到过拟合,而是在构建模型后才能检测出来。我们可以使用上述方法解决过拟合问题。
原文链接:https://mahithas.medium.com/overfitting-identify-and-resolve-df3e3fdd2860
© THE END
转载请联系 机器之心 公众号获得授权
投稿或寻求报道:content@jiqizhixin.com
点个在看 paper不断!
如何防止我的模型过拟合?这篇文章给出了6大必备方法相关推荐
- 使用分层网络模型的两个优点是什么_从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了...
从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了mp.weixin.qq.com 前言 今天和大家一起谈谈"网络",之前写的文章可能不太通俗易懂,有人就 ...
- 从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了
来源 | 网络工程师笔记 前言 今天和大家一起谈谈"网络",之前写的文章可能不太通俗易懂,有人就问我可不可以写些比较容易理解的文章,我想了想那就从头说起吧! 那么什么是网络呢? 百 ...
- PowerDesigner绘制业务处理模型等时元素的字体太小,调大字体方法
问题 昨晚绘制这个系统的业务处理模型,创建Entity时,文字太小了,只有8px,看不清,就像这样,粘贴到文档里真的没法看.... 失败方法 百度找方法,说是可以通过Tools->Display ...
- 学习《Linux设备模型浅析之设备篇》笔记(一)
最近在学习Linux设备模型,前面几篇文章也是读这篇的时候遇到问题,然后为了搞清楚先转去摸索才写出来的. 当然了,刚开始是先读到<Linux那些事儿之我是Sysfs>,搞不清楚才去读的&l ...
- R语言glmnet交叉验证选择(alpha、lambda)拟合最优elastic回归模型:弹性网络(elasticNet)模型选择最优的alpha值、模型最优的lambda值,最终模型的拟合与评估
R语言glmnet交叉验证选择(alpha参数和lambda参数)拟合最优elastic回归模型:弹性网络(elasticNet)模型选择最优的alpha值.弹性网络(elasticNet)模型最优的 ...
- 【机器学习】一文深层解决模型过拟合
一.过拟合的本质及现象 过拟合是指模型只过分地匹配特定训练数据集,以至于对训练集外数据无良好地拟合及预测.其本质原因是模型从训练数据中学习到了一些统计噪声,即这部分信息仅是局部数据的统计规律,该信息没 ...
- 【机器学习基础】说模型过拟合的时候,说的是什么?
前言 机器学习中,模型的拟合效果意味着对新数据的预测能力的强弱(泛化能力).而程序员评价模型拟合效果时,常说"过拟合"及"欠拟合",那究竟什么是过/欠拟合呢?什 ...
- arima模型怎么拟合_7个统计测试,用于验证和帮助拟合ARIMA模型
arima模型怎么拟合 什么是ARIMA? (What is ARIMA?) ARIMA models are one of the most classic and most widely used ...
- 目标检测——如何让模型过拟合
1 前言 让模型最好的学会train集数据的第一步,就是首先让模型过拟合: 2 减小学习率 过小的学习率会让模型过拟合,这是我在车道线冠军代码里面看到的, gujingxiao同学是这样说的: 由于测 ...
最新文章
- (曲率系列2:)Paper6:Curvature Estimation of 3D Point Cloud Surfaces Through the Fitting of Normal
- 心得丨如何快速上手疯狂上涨的Python?
- 1.15 Java冒泡排序法
- POJ 3614-Sunscreen
- Python爬虫进阶三之Scrapy框架安装配置
- 复杂电路简化经典例题_【中考物理】电路简化的10大原则和7大步骤
- 门槛回归模型_stata15:门槛模型
- dell 重装linux系统_U盘装系统开机按哪个键
- 按照某列属性拆分Excel文件
- C++中的const完全解析
- 规范完整APP开发制作流程
- k8s pod 污点
- 使用spire.doc for java为word添加页码、文字水印、书签(去除警告信息)
- 诛仙一直服务器维护,服务器维护《诛仙3》官方致仙友的一封信
- 计算机体系结构在线读,计算机体系结构_arch01_intro-c1.pdf
- android toast设置背景颜色,android-自定义Toast消息文本颜色
- 电大计算机基础应用操作题,2016年电大-电大 网考 计算机应用基础 操作题大全.doc...
- 机器人工程毕业设计☞提升突破
- 理解软件保护技术之序列号方式
- 一款功能强大的代理检查和IP地址轮转工具