https://www.jianshu.com/p/a9019afc8129
是什么

过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。

具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。
解决过拟合的 方法
在这里插入图片描述

过拟合的主要原因就是数据太少—+模型太复杂
1、获取更多的数据,让模型看见很多尽可能多的例外情况,它就会不断的修正自己,从而得到更好的结果
如何获取更多的数据呢:
根据当前的数据集分布生成数据–一般不用,因为估计分布参数的过程也会带入抽样误差
数据增强:data augmentation:就是使得输入数据成倍的增长,数据越多越好,不容易发生过拟合,保证不论进行什么变换,label值不变,就是不影响它的分类
比如对一张图片而言:水平翻转、随机裁剪,一张图片被裁剪成很多小部分,例如只剩下猫头,猫爪子,会不会误导模型,不会,对于一个输入数据,自己给自己找麻烦,自己发生一些遮蔽,光照等不同个情况,能够使模型更强壮。把图片进行放大缩小变换(scales)translation(平移),rotation(角度变换,旋转)stretching(
数据增强(Data Augmentation):通过一定规则扩充数据。如在物体分类问题里,物体在图像中的位置、姿态、尺度,整体图片明暗度等都不会影响分类结果。我们就可以通过图像平移、翻转、缩放、切割等手段将数据库成倍扩充;
二、使用合适的模型
不是不会过拟合,而是在满足一定的条件下不容易过拟合。特征参数要足够多,特征参数之间相关性尽量低。
知乎用户
Breiman的这句话完全错误,根本没有不过拟合的学习方法!
对于随机森林来说: 在有躁音的情况下(注意,现实世界应用中躁音不能忽略),树太少很容易过拟合,增加树可以减小过拟合,但没有办法完全消除过拟合,无论你怎么增加树都不行。

随机森林
决策树主要流行的算法有ID3算法,C4.5算法、CART算法,主要花费时间在建决策树和剪枝过程中,但一旦建成决策树,由于他是树形结构能够直观的显示出模型,而且在后期的分类过程中也比较容易分类,但决策树有一些不好的地方,比如容易过拟合。为了减少决策树的不足,近年来又提出了许多模型组和+决策树的算法,这些算法都是生成N棵决策树,虽然这N棵树都很简单,但是它们综合起来就很强大了,有点类似与adaboost算法。
随机森林主要思想是先对原始样本随机选出N 个训练子集用于随机生成N颗决策树,针对每个样本集在构建决策树的选择最优属性进行划分时是随机选择m个属性,而不是像常用的决策树将所有的属性参与选择,再由这些决策树构成一个森林,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类,然后看看哪一类被选择最多,就预测这个样本为那一类。
随机森林算法三个步骤:
(1)为每棵决策树抽样产生训练集
随机森林算法采用Bagging抽样技术从原始训练集中产生N 个训练子集(假设要随机生成N颗决策树),每个训练子集的大小约为原始训练集的三分之二,每次抽样均为随机且放回抽样,这样使得训练子集中的样本存在一定的重复,这样做的目的是为了在训练的时候,每一棵树的输入样本都不是全部的样本,使森林中的决策树不至于产生局部最优解。
(2)构建决策树
为每一个训练子集分别建立一棵决策树,生成N棵决策树从而形成森林,每棵决策树不需要剪枝处理。
由于随机森林在进行节点分裂时,随机地选择某m个属性(一般是随机抽取指定logM +1个随机特征变量,m<<M)参与比较,而不是像决策树将所有的属性都参与属性指标的计算。为了使每棵决策树之间的相关性减少,同时提升每棵决策树的分类精度,从而达到节点分裂的随机性。
(3)森林的形成
随机森林算法最终的输出结果根据随机构建的N棵决策子树将对某测试样本进行分类,将每棵子树的结果汇总,在所得到的结果中哪个类别较多就认为该样本是那个类别。
由于上面两个随机采样(从原始训练集中随机产生N个训练子集用于随机生成N颗决策树和在针对每个样本集构建决策树过程中随机地选择m个属性)的过程保证了随机性,所以不会出现过拟合over-fitting。随机森林中的每一棵数分类的能力都很弱,但是多棵树组合起来就变的NB,因为每棵树都精通某一方面的分类,多棵树组成一个精通不同领域的决策专家。
随机森林优缺点
优点:
1、随机森林可以处理高维数据,并确定变量的重要性,是一个不错的降维方法;
2、对数据缺失,随机森林也能较好地保持精确性;
3、当存在分类不平衡的情况时,随机森林能够提供平衡数据集误差的有效方法;
缺点:
1、随机森林算法可以解决回归问题,但是由于不能输出一个连续型值和作出超越训练集数据范围的预测,导致在对某些噪声的数据进行建模时出现过度拟合;
2、随机森林算法类似于黑盒子,由于几乎无法控制模型内部的运行,只能在不同的参数和随机种子之间进行尝试

过拟合及解决方案--过拟合主要是有两个原因造成的:数据太少 + 模型太复杂相关推荐

  1. 动手学深度学习-过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;循环神经网络进阶

    一.过拟合.欠拟合及其解决方案 前序知识点 模型选择 正则化:添加参数的惩罚项,防止过拟合.有L2正则化与L1正则化. 奥卡姆剃刀原则:有多个假设模型时,应该选择假设条件最少的. 模型的泛化能力:指模 ...

  2. matlab最小二乘法拟合参数,matlab最小二乘法拟合

    matlab最小二乘法拟合 数学建模与数学实验 拟 合 1 实验目的 实验内容 2. 掌握用数学软件求解拟合问题. 1. 直观了解拟合基本内容. 1. 拟合问题引例及基本原理. 4. 实验作业. 2. ...

  3. 过拟合解决方法python_《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)...

    <python深度学习>笔记---4.4.过拟合与欠拟合(解决过拟合常见方法) 一.总结 一句话总结: 减小网络大小 添加权重正则化 添加 dropout 正则化 1.机器学习的根本问题? ...

  4. 防止过拟合以及解决过拟合

    本文转载:http://blog.sina.com.cn/s/blog_53c47a2f0102vjyf.html 过拟合:为了得到一致假设而使假设变得过度复杂称为过拟合."一个过拟合的模型 ...

  5. 过拟合(overfitting)和欠拟合(underfitting)出现原因及如何避免方案

    文章目录 欠拟合 一.什么是欠拟合? 二.欠拟合出现原因 三.解决欠拟合(高偏差)的方法 过拟合 一.什么是过拟合? 二.过拟合出现原因 三.解决过拟合(高方差)的方法 欠拟合 一.什么是欠拟合? 欠 ...

  6. 误差函数拟合优缺点_欠拟合、过拟合及如何防止过拟合

    对于深度学习或机器学习模型而言,我们不仅要求它对训练数据集有很好的拟合(训练误差),同时也希望它可以对未知数据集(测试集)有很好的拟合结果(泛化能力),所产生的测试误差被称为泛化误差.度量泛化能力的好 ...

  7. 机器学习--线性回归4(线性拟合、局部线性拟合实战)

    前面三节,我们从最简单的一元线性回归到多元线性回归,讨论了,损失函数到底由那几部分组成(这点我觉很重要,因为它不仅仅存在线性回归中还存在其他机器学习中,因此有必要搞明白他,有兴趣的请看这篇文章),后面 ...

  8. 多项式拟合缺点_多项式拟合

    在网上看别人的心得 一 最小二乘法的基本原理 从整体上考虑近似函数同所给数据点(i=0,1,-,m)误差(i=0,1,-,m)的大小,常用的方法有以下三种:一是误差(i=0,1,-,m)绝对值的最 ...

  9. MATLAB 数据处理(二)非线性拟合——洛伦兹拟合(Lorentz fit)

    文章目录 一.拟合示例 二.单峰洛伦兹 2.1 洛伦兹线型函数表达式与物理含义 2.2 lsqcurvefit非线性拟合 2.3 代码实现 三.双峰洛伦兹 3.1 洛伦兹线型函数表达式与物理含义 3. ...

最新文章

  1. 给AI系统做“安全体检”,阿里安全提出自动化AI对抗平台CAA | AAAI 2021
  2. 精确记算程序的运行时间或者某段代码的运行时间
  3. python nameerror import_Python-ImportError:无法导入名称X
  4. 【Java每日一题】20170309
  5. linux搜索含多个字符串,关于linux:使用grep搜索多个字符串
  6. java 的SYSTEM类
  7. 思维方式是看待事物的角度、方式和方法,它对人的言行起到决定性作用
  8. CCF201809-3 元素选择器(100分)【文本处理】
  9. 如何监控主从故障是否正常?MySQL数据库
  10. L1-025 正整数A+B (15 分)—团体程序设计天梯赛
  11. lambda表达式传参
  12. python入门第二十五天--反射 通过字符串的形式操作对象中的成员
  13. 将bmp格式的图片反色
  14. linux开机启动项怎么设置bios,bios怎么设置开机启动项
  15. c/s模型和b/s模型
  16. 没牙仔的世界(C++)
  17. crucible3.x +fisheye3.x 安装和破解
  18. java单核cpu飙高考死_java多线程在单核CPU上,还是需要volatile synchronized吗?
  19. Android 4.4(KitKat)窗口管理子系统 - 体系框架
  20. ArcBlock 分享 | 冒志鸿:我为区块链技术落地“狂”!

热门文章

  1. python视频处理转语音_文本转语音(普通话粤语)_Python视频剪辑自动化
  2. 不止于IaaS,运营商要用PaaS构筑生态竞争力
  3. 天津工业大学广东工业大学计算机学院,广东工业大学信息工程学院
  4. win10计算机性能设置,Win10笔记本电脑拥有双显卡,一个集成的,一个独显。那么,怎么设置自动切换到高性能 - Microsoft Community...
  5. PHP:字符串的分割与拼接
  6. Fresco最最最简单使用
  7. 【正点原子MP157连载】第三章 STM32MP157开发板使用前准备-摘自【正点原子】STM32MP157快速体验
  8. windows 无效驱动器 问题
  9. 极速办公(excel)如何快速计数
  10. GIT配置码云、github