https://www.toutiao.com/a6666213114146456072/

在机器学习模型的训练过程中,经常会发生过拟合(overfitting)、欠拟合(underfitting)的现象。那这二者究竟为何物呢?

过拟合,通俗点说,就是我们的模型对数据模拟的太好了,训练集中的数据几乎都被完美预测。有人就说了,我预测的完美也有错吗?是的,你有错。因为我们的目标并不是看你训练集中的数据预测得有多好,而是要看在测试集中的表现。也就是说,把这个模型放到新环境中,测试预测效果。同时,我们的训练集中数据有噪声,如果你连噪声都完美预测,那么放到测试集中,模型的表现一定不是很好。专业点说,就是模型的泛化能力差。

欠拟合,正好跟过拟合相反,我们的模型在训练集中表现的太差了,几乎很少能预测正确的。放到测试集中同样不会有很好的效果。

那出现这两种情况该如何解决呢?对于欠拟合来说,我们可以增加模型的复杂度,增加数据量等等手段。而对于过拟合呢,今天的主角——正则化(regularization)就派上用场了。

也就是说,对于我们之前的线性回归模型,给它加一个正则化项,它就不那么容易发生过拟合。根据正则化项的不同,一般分为Ridge Regression(岭回归)和Lasso Regression(拉索回归)。我们先来看应用广泛的岭回归。

岭回归的代价函数如下:

从上式可以看出,正则化项其实就是参数w的平方和再乘以个系数λ。对于加了正则化项的代价函数来说,我们要想求得最小值,从而得到w的解,还是要对J(w)求导。

在没加正则化项之前,J(w)的导数可化简为(参考之前的线性回归模型推导):

而正则化项的导数为λw/m,把这两个加到一起,就得到

令其等于0,得到:

注意到,w的系数一个为矩阵,一个为标量λ,我们想将w提出来,该怎么办呢?事实上,只要让λ乘以单位矩阵就可以了:

之前我们在线性回归推导到这一步时,曾说到w的矩阵系数可能不可逆。但现在我们添加了λI这一项后,就保证了w的矩阵系数一定是可逆的。所以在等式两边同时乘以矩阵系数的逆,则可求出w为:

这是我们利用求导直接得到了参数w的值,当然我们也可以用梯度下降法来进行计算,只需要在梯度下降公式后面加上‘λm’这一项即可,这里就不再推导了。

推导完之后,我们再来回顾下岭回归的代价函数,重点观察它的正则化项,思考为什么加入它之后就能避免过拟合了呢?

注意我们的参数λ,如果它比较大,那要想J(w)取小值,那么系数w就必须减小,这就降低了模型的复杂度,过拟合现象得以缓解。但λ也不能过大,过大会导致系数被“惩罚”得很厉害,模型反而会过于简单,可能欠拟合;同时,λ也不能过小,当λ趋近于0的时候,相当于我们没有添加正则化项,同样不能缓解过拟合。

最后我们来简单了解下Lasso回归,与岭回归想比,它的正则化项就是参数w的绝对值的和,用公式表示为:

如果我们用梯度下降法,求得J(w)的梯度为:

其中,sign(w)叫做符号函数。它的含义是:当w>0时,sign(w)=1;当w<0时,sign(w)=-1;当w=0时,sign(w)=0。

最后,我们把Lasso回归叫做L1正则化,岭回归叫做L2正则化。因为它们的正则化项分别是L1范数和L2范数。L-p范数的定义如下:

这就是今天的全部内容,下一篇我们会来介绍分类模型,敬请期待。

过拟合、欠拟合与正则化相关推荐

  1. 31,32,33_过拟合、欠拟合的概念、L2正则化,Pytorch过拟合欠拟合,交叉验证-Train-Val-Test划分,划分训练集和测试集,K-fold,Regularization

    1.26.过拟合.欠拟合及其解决方案 1.26.1.过拟合.欠拟合的概念 1.26.1.1.训练误差和泛化误差 1.26.1.2.验证数据集与K-fold验证 1.26.1.3.过拟合和欠拟合 1.2 ...

  2. 06 回归算法 - 损失函数、过拟合欠拟合

    == 损失函数 == 损失函数是衡量一个模型好坏的指标,一般来说损失函数的值越小越好. 0~1损失函数: J(θ)=$begin{cases} 1,Y≠f(X)\ 0,Y=f(X)\ end{case ...

  3. 机器学习--过度拟合 欠拟合

    过度拟合(overfitting)是指数据模型在训练集里表现非常满意,但是一旦应用到真实业务实践时,效果大打折扣:换成学术化语言描述,就是模型对样本数据拟合非常好,但是对于样本数据外的应用数据,拟合效 ...

  4. 回归算法-线性回归分析-过拟合欠拟合岭回归

    1.欠拟合与过拟合 机器学习中的泛化,泛化即是,模型学习到的概念在它处于学习的过程中时模型没有遇见过的样本时候的表现.在机器学习领域中,当我们讨论一个机器学习模型学习和泛化的好坏时,我们通常使用术语: ...

  5. 【进阶版】机器学习之线性模型介绍及过拟合欠拟合解决方法岭回归、loss回归、elasticnet回归(05)

    目录 欢迎订阅本专栏,持续更新中~ 本专栏前期文章介绍! 机器学习配套资源推送 进阶版机器学习文章更新~ 点击下方下载高清版学习知识图册 线性模型 线性回归 线性几率回归 对数线性回归 线性判别分析 ...

  6. yolov5 过拟合 欠拟合

    yolov5训练完模型以后发现 对测试图片的识别效果不好. 那么这个时候该怎么办呢? 是过拟合还是欠拟合了呢? 怎么判断呢? 欠拟合 机器学习中一个重要的话题便是模型的泛化能力,泛化能力强的模型才是好 ...

  7. 【吴恩达】机器学习作业ex5-->偏差与方差(过拟合/欠拟合)Python

    一.前言 这次的作业主要目的是研究偏差和方差也就是过拟合和欠拟合的关系,数据分别是水位的变化来预测大坝流出的水量,其实和房价预测相差不大,要说区别就是这次将X分为了三部分,分别是训练集,交叉集,测试集 ...

  8. 模型训练中的过拟合\欠拟合

    过拟合 过拟合是指模型在训练过程中学习了所有样本的特征,复杂度高于实际问题.其泛化性能很差,在训练集中表现非常好,但是在测试集上的表现很差. 过拟合的原因 样本的原因,样本太少:样本太过单一不足以代表 ...

  9. 机器学习-分类算法-线性回归、梯度下降,过拟合欠拟合,岭回归11

    梯度下降重点 正规方程去进行房价预测 from sklearn.datasets import load_boston from sklearn.linear_model import LinearR ...

  10. 泛化,过拟合,欠拟合素材(part1)--python机器学习基础教程

    学习笔记,仅供参考,有错必纠 文章目录 python机器学习基础教程 泛化.过拟合.欠拟合 模型复杂度与训练集大小的关系 python机器学习基础教程 泛化.过拟合.欠拟合 判断一个算法在新数据上表现 ...

最新文章

  1. mysql 5.7.28 windows_Windows下mysql-5.7.28下载、安装、配置教程
  2. 如何自学python编程-如何教少儿学习Python编程
  3. STL源码剖析 读书笔记一 2013-5-4
  4. border-image图片边框
  5. 为什么要用Vue.js的组件化开发
  6. PHP 面向对象 精华
  7. html当当网上书店,当当网上书店案例代码+css+js+images
  8. HTML圆角+div立体阴影
  9. Vue家谱视图结构- vue-tree-chart
  10. 通过Java创建Socket 连接到服务器
  11. Down Payment一个不错的练习
  12. allegro 封装shape焊盘问题 Unable to load shape symbol
  13. 2020总结——人生如逆旅,我亦是行人
  14. 程序设计思维与实践 Week12 作业 必做题 A-zjm找数
  15. 工科学术论文书写攻略
  16. C++父类与子类间构造,析构,拷贝的调用关系
  17. 怎么看SaaS企业中的收入留存率?
  18. 用MFC创建个性的对话框
  19. 线性代数-中英文对照
  20. Tikz作图教程:堆叠柱形图+折线图+误差线

热门文章

  1. Union和Union All的区别
  2. 将txt文件和excel文件导入SQL2000数据库
  3. mysql中的 explain 关键字学习笔记
  4. 深度学习三大谜团:集成、知识蒸馏和自蒸馏
  5. 智源重大研究方向“智能信息检索与挖掘”发布会(活动报名)
  6. 当代新青年,在看什么书?|主题书单揭晓
  7. Isometric Game 及译法漫谈
  8. 9个value_counts()的小技巧,提高Pandas 数据分析效率
  9. ​Python数据可视化工具怎么选?深度评测5款实用工具
  10. 国内NLP竞赛平台一览(附平台连接)