Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【机器学习笔记】:解读正则化,LASSO回归,岭回归

【机器学习笔记】:解读正则化,LASSO回归,岭回归

作者头像
Python数据科学
发布于 2018-12-28 07:55:06
发布于 2018-12-28 07:55:06
5K0
举报
文章被收录于专栏:Python数据科学Python数据科学

作者:xiaoyu

知乎:https://zhuanlan.zhihu.com/pypcfx

介绍:一个半路转行的数据挖掘工程师

机器学习的学习过程中,我们会经常听到正则化这个词,在开始入门学习的时候还经常与标准化混淆。到底什么是正则化呢?本篇我们将由浅入深详细解读什么是正则化,以及LASSO回归岭回归的介绍。

在正式开始之前,我们先了解几个相关基本概念。

▍什么是过拟合?

对于一组给定的数据,我们需要通过机器学习算法去拟合得到一个模型(对应图中曲线)。根据我们对拟合的控制和调整,这个模型可以有无数多种(一条直线,或各种形状的曲线等)。这么多种当中,哪一种是我们想要的最优结果呢?哪一种最好呢?

我们评判模型好坏的标准是:不但对于训练的数据集有很好的拟合效果,而且对于未知的新的数据(测试集)也同样拥有好的效果,即拥有好的泛化能力。

如果我们的模型过度地学习并拟合了数据,那么就会连一些噪音数据也一起学习(上图中比较复杂的曲线)。但事实上数据在一定范围内是随机的,我们无法预知未知数据长什么样,而且它在很大概率上也不会和训练数据一模一样,因此如果过分地的学习就会导致模型缺少泛化能力,即过拟合。

如何判断一个结果是否发生了过拟合现象呢?

如上图迭代次数的增加,训练集和测试集的损失逐渐有越来越大的差距,这就表明发生了过拟合。

过拟合肯定不是我们想要的结果,因此需要使用一些方法来尽量避免过拟合的发生。比如常见的过拟合处理方法有:

  • 增加数据量
  • 简化模型
  • 交叉验证
  • 正则化
  • ...

下面就来说说正则化,一种用来避免过拟合的好方法。

▍什么是正则化?

正则化就是通过对模型参数进行调整(数量和大小),降低模型的复杂度,以达到可以避免过拟合的效果。正则化是机器学习中的一种叫法,其它领域内叫法各不相同:

机器学习把L1和L2叫正则化,统计学领域叫惩罚项,数学领域叫范数

如果不加入正则化,我们的目标是最小化损失函数,即经验风险最小化

加入正则化以后,不再是最小化损失函数了,而是变成以最小化损失复杂度为目标了,这个称为结构风险最小化

现在,我们的训练优化算法是一个由两项内容组成的函数:一个是损失项,用于衡量模型与数据的拟合度,另一个是正则化项,用于衡量模型复杂度。

举一个已经分享过的内容为例,多元线性回归模型:

【机器学习笔记】:大话线性回归(一)

【机器学习笔记】:大话线性回归(二)

【机器学习笔记】:大话线性回归(三)

多元线性回归的损失函数是离差平方和的形式,即最小二乘估计,公式如下:

如果我们想通过正则化降低模型复杂度,可以在损失函数的基础上线性添加一个正则化项,这样就得到了一个新的结构风险函数,如下:

这里我们就添加了一个L2正则化项。先不讨论这个正则化项的类型,我们可以直观看到:在所有参数平方和前乘以了一个参数λ,把它叫正则化系数或者惩罚系数。这个惩罚系数是调节模型好坏的关键参数,我们通过两个极端的情况说明它是如何调节模型复杂度的。

  • λ值为0:损失函数将与原来损失函数一样(即最小二乘估计形式),说明对参数权重β没有任何惩罚。
  • λ为无穷大:在惩罚系数λ无穷大的情况下,为保证整个结构风险函数最小化,只能通过最小化所有权重系数β达到目的了,即通过λ的惩罚降低了参数的权重值,而在降低参数权重值的同时我们就实现了降低模型复杂度的效果。

当然,具体的惩罚程度还需要调节λ值来达到一个平衡的点,过度的惩罚会让模型出现欠拟合的情况。了解正则化项后,下面我来接着看一下这个惩罚项都可以是哪些类型。

▍正则化有哪些类型?

常用的正则化有两种L1L2。如果了解KNN算法和聚类算法的都知道有两个常用的距离概念,曼哈顿距离和欧式距离,它们与正则化的对应关系是这样的:

  • L1:曼哈顿距离(参数绝对求和)
  • L2:欧氏距离(参数平方值求和)

在回归模型中,我们一般把的带有L1正则化项的回归模型叫做LASSO回归,而把带有L2正则化项的回归叫做岭回归。这里我们直接给出两种多元线性回归正则化的公式:

多元线性回归 L1正则化:Lasso回归

多元线性回归 L2正则化:Ridge回归

下面我们分别介绍一下LASSO回归和岭回归,然后对比L1和L2正则化的区别。

▍L2正则化:岭回归

岭回归的提出

我们在之前通过最小二乘法推导出多元线性回归的求解公式:

这个公式有一个问题:X不能为奇异矩阵,否则无法求解矩阵的逆。岭回归的提出恰好可以很好的解决这个问题,它的思路是:在原先的β的最小二乘估计中加一个小扰动λI,这样就可以保证矩阵的逆可以求解,使得问题稳定。公式如下:

这个公式我们可以通过对上一节的结构化风险函数求偏导推出来,具体推导不进行展示了。

岭回归的几何意义

既然我们想最小化结构风险函数,那么我们可以通过限制其中的正则项来达到目的,因此可以将原来的结构风险函数变成另一种问题形式。

上式是对 β 的平方和做数值上界限定,即所有β 的平方和不超过参数 t。这时候,我们相当于拆分了原来的结构化分险函数,目标就转换为:最小化原来的训练样本误差,但是要遵循 β 平方和小于 t 的条件。

以两个变量为例,通过图形来解释岭回归的几何意义,最小二乘解就相当于一个漏斗型,通过求解找到最小值。

最小二乘求解:经验风险最小化

在原来的最小二乘求解基础上,加入下面的正则化的约束(几何图形中相当于一个圆柱体)。

岭回归:结构风险最小化

公式中的 t λ 是成反比的,也就是说t越小,惩罚程度越大,与sklearn中的正则化参数定义是一样的。

因此,如果我们减小t,圆柱体就会向内缩,导致与漏斗的交点向上移动,而向上移动的同时 β1 β2 的值也在减小,即达到了降低参数权重的效果。但是随着向上移动,结构化风险函数的值也越来越大了,趋于欠拟合的方向,这也就揭示了为什么说要选择一个合适的惩罚系数了。

▍L1正则化:LASSO回归

LASSO回归形式上与岭回归非常相似,只是将平方换成了绝对值。

LASSO回归正则项的几何形式不再是一个圆柱体,而变为一个长方体了,这也是导致两种回归关于是否稀疏的根本原因。

▍L1和L2正则化有什么相同和不同?

1. 有偏估计

我们将前面的三维立体图形映射成二维(从上往下看),可以清晰地看到:求解的交点不再是最小二乘的最小值(红点),而变成了与正则项的交点(黄点)。这说明了LASSO回归和岭回归都是一种有偏估计,而最小二乘是一种无偏估计。

2. 能否使参数矩阵稀疏

前面我们说正则化是通过调整模型参数(数量和大小)来降低模型复杂度的,其实,这里说的数量大小是和L1和L2正则化分别有着对应关系的。

  • L1正则化:通过稀疏化(减少参数数量)来降低模型复杂度的,即可以将参数值减小到0。
  • L2正则化:通过减少参数值大小来降低模型复杂的,即只能将参数值不断减小但永远不会减小到0。

这个区别可以从二维图中更好地观察出来:岭回归中两个图形(没有棱角)的交点永远不会落在两个轴上,而LASSO回归中,正则化的几何图形是有棱角的,可以很好的让交点落在某一个轴上。

这种稀疏化的不同也导致了LASSO回归可以用于特征选择(让特征权重变为0从而筛选掉特征),而岭回归却不行。但是两种回归的效果还需要根据实际情况来选择,以及如何选择惩罚系数。关于稀疏化很有多内容,这里不进行展开。

3. 下降速度不同

两种回归的不同也可以反映在下降速度上,蓝色为岭回归的最小化下降曲线,红色为LASSO回归的下降曲线。

可以发现:最开始的时候岭回归下降的非常快,但是随着值越来越小,岭回归下降速度也越来越慢,当快接近0的时候,速度会非常慢,即很难减小到0。相反,LASSO回归是以恒定的速度下降的,相比于岭回归更稳定,下降值越接近近0时,下降速度越快,最后可以减小到0。

下面是一组岭回归和LASSO回归的特征系数随着模型不断迭代而变化的动态展示。

▍其它正则化类型?

L1和L2只是比较常用的范数,如果推广到一般的话,可以有非常多种的正则化。

q可是是很多值

但是由于一些凸优化问题,L1和L2表现出来的效果是最好的,因此也被最常用到。

此外,还有一种介于L1和L2之间的一种正则化叫Elasticnet,像一种弹性网一样,现在被认为是处理多重共线性和变量筛选较好的收缩方法,而且损失的精度不会太多。

▍总结

本篇由浅入深地介绍了过拟合,正则化,以及LASSO回归和岭回归,希望通过本篇可以让你对正则化有一个清晰的认识,后续会介绍正则化相关编程方面的实战内容,以及如何选择参数,调节参数。

参考: [1].http://f.dataguru.cn/thread-598486-1-1.html [2].https://developers.google.com/machine-learning/ [3].https://towardsdatascience.com/ [4].https://blog.csdn.net/lyf52010/article/details/79822144

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python数据科学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
解读正则化
正则化是为了避免过拟合现象的出现而出现的,本质是对模型训练误差和泛化误差的一个平衡(过拟合下的泛化能力是比较弱的)。正则化是机器学习中的一种叫法,其他领域叫法各不相同:
爱编程的小明
2022/09/06
7020
线性回归的正则化改进(岭回归、Lasso、弹性网络),最小二乘法和最大似然估计之间关系,正则化
对于最小二乘法,当从模型总体随机抽取n组样本观测值后,最合理的参数估计量应该使得模型能最好地拟合样本数据,也就是估计值和观测值之差的平方和最小。而对于最大似然法,当从模型总体随机抽取n组样本观测值后,最合理的参数估计量应该使得从模型中抽取该n组样本观测值的概率最大。显然,这是从不同原理出发的两种参数估计方法。
zhangjiqun
2024/12/14
4410
线性回归的正则化改进(岭回归、Lasso、弹性网络),最小二乘法和最大似然估计之间关系,正则化
教程 | 初学者如何学习机器学习中的L1和L2正则化
选自Medium 作者:Prashant Gupta 机器之心编译 参与:陈韵竹、刘晓坤 训练机器学习模型的要点之一是避免过拟合。如果发生过拟合,模型的精确度会下降。这是由于模型过度尝试捕获训练数据集的噪声。本文介绍了两种常用的正则化方法,通过可视化解释帮助你理解正则化的作用和两种方法的区别。 噪声,是指那些不能代表数据真实特性的数据点,它们的生成是随机的。学习和捕捉这些数据点让你的模型复杂度增大,有过拟合的风险。 避免过拟合的方式之一是使用交叉验证(cross validation),这有利于估计测试集中
机器之心
2018/05/09
1K0
教程 | 初学者如何学习机器学习中的L1和L2正则化
机器学习中的正则化
训练机器学习模型的主要方面之一是避免过度拟合。如果模型过于拟合,则模型的准确性会较低。发生这种情况是因为您的模型过于努力地捕获训练数据集中的噪声。噪声是指数据点并不能真正代表数据的真实属性,而是随机的机会。学习此类数据点,会使您的模型更加灵活,存在过度拟合的风险。
计算机与AI
2020/12/14
7840
机器学习中的正则化
回归,岭回归。LASSO回归
矩阵表示多元线性回归 Y=BX+a Q(B)=(Y-BX)T(Y-BX)达到最小时的B值。 也即是残差平方和最小时。B(Bi)的值。可以证明B的最小二乘估计=(XTX)-1XTy 其中(XTX)-1为广义逆。 如果X存在线性相关的话,XTX没有逆: 1.出现多重共线性2.当n<p,变量比样本多时,出现奇异 岭回归(Ridge Regression)---------共线性问题 先对数据做标准化 B(K)=(XTX+kI)XTY为B的岭回归估计,其中K为岭参数,I为单位矩阵,KI为扰动。 岭迹图帮助我们发现
学到老
2018/03/16
2.5K0
机器学习算法之岭回归、Lasso回归和ElasticNet回归
作者:biaodianfu https://www.biaodianfu.com/ridge-lasso-elasticnet.html
Ai学习的老章
2019/07/17
1.6K0
机器学习算法之岭回归、Lasso回归和ElasticNet回归
图文并茂理解机器学习中的正则化和范数
在数学上我们可以证明岭估计的参数模要严格小于最小二乘估计的参数模,换句话说,我们可以认为加入$L2$正则项后,估计参数长度变短了,这在数学上被称为特征缩减shrinkage。
TOMOCAT
2019/01/28
2K0
图文并茂理解机器学习中的正则化和范数
机器学习 | 深度理解Lasso回归分析
上篇《线性回归中的多重共线性与岭回归》(点击跳转)详细介绍了线性回归中多重共线性,以及一种线性回归的缩减(shrinkage)方法 ----岭回归(Ridge Regression),除此之外另一种线性回归的缩减方法----Lasso回归亦可解决多重共线性问题,但是不一样的是Lasso回归针对不同的自变量,会使其收敛的速度不一样。有的变量就很快趋于0了,有的却会很慢。因此一定程度上Lasso回归非常适合于做特征选择。
数据STUDIO
2021/06/24
12.5K0
正则化(1):通俗易懂的岭回归
引言:在学习本章节的的内容之前,如果你不太熟悉模型的方差与偏差(偏差与方差(Bias and Variance)),此外还有简单线性模型、多元线性模型(线性回归的R实现与结果解读)、广义线性模型实现t检验和方差分析(线性回归的妙处:t检验与方差分析),以及设计矩阵(设计矩阵(design matrices))。这些内容在之前的章节中已有对应推送,可参考学习。如果你已经非常熟悉这些知识了,就可以直接开始本章节的岭回归学习啦~
王诗翔呀
2020/09/17
11.2K0
基于正则化的回归:岭回归和套索回归
在多元线性回归中,多个变量之间可能存在多重共线性,所谓多重,就是一个变量与多个变量之间都存在线性相关。首先来看下多重共线性对回归模型的影响,假设一下回归模型
生信修炼手册
2021/02/09
1.3K0
机器学习损失函数、L1-L2正则化的前世今生
前言: 我们学习一个算法总是要有个指标或者多个指标来衡量一下算的好不好,不同的机器学习问题就有了不同的努力目标,今天我们就来聊一聊回归意义下的损失函数、正则化的前世今生,从哪里来,到哪
机器学习算法工程师
2018/03/06
2K0
机器学习损失函数、L1-L2正则化的前世今生
机器学习笔记之正则化的线性回归的岭回归与Lasso回归
正则化是用来防止过拟合的方法。在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数。
Jetpropelledsnake21
2021/01/21
1.2K0
线性回归中的L1与L2正则化
在这篇文章中,我将介绍一个与回归相关的常见技术面试问题,我自己也经常会提到这个问题:
deephub
2021/03/10
9490
线性回归中的L1与L2正则化
正则化:防止模型过拟合
为了避免过拟合,一种手段是使用正则化(Regularizaiton)来限制模型的复杂程度。Regularization从英文直译过来是“规则化”,就是说,在原来的问题求解条件上加一些规则限制,避免模型过于复杂,出现过拟合的情况。
PP鲁
2020/06/09
2.6K0
正则化:防止模型过拟合
线性回归算法、L2正则化(岭回归)
对大量的观测数据进行处理,从而得到比较符合事物内部规律的数学表达式。也就是说寻找到数据与数据之间的规律所在,从而就可以模拟出结果,也就是对结果进行预测。解决的就是通过已知的数据得到未知的结果。例如:对房价的预测、判断信用评价、电影票房预估等。
大数据技术与机器学习
2019/11/20
1.9K0
线性回归算法、L2正则化(岭回归)
【机器学习与实现】线性回归分析
如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
Francek Chen
2025/01/22
1010
【机器学习与实现】线性回归分析
【小白学优化】最小二乘法与岭回归&Lasso回归
如果你刚某运动完,虚的很,这时候你的女朋友说:你这个有多长?然后你拿过来尺子想量一量。因为很虚,所以眼睛有点花,测量了五次有五个结果:18.1cm,17.9cm,18.2cm,17.8cm,18.0cm
机器学习炼丹术
2020/08/10
1.8K0
回归分析技术|机器学习
原文:http://www.analyticsvidhya.com/blog/2015/08/comprehensive-guide-regression/ 回归分析是建模和分析数据的重要工具。本文
陆勤_数据人网
2018/02/28
1K0
回归分析技术|机器学习
最强总结!8个线性回归核心点!!
那从今天开始,我预计会陆陆续续出一些内容,来论述各个算法的基础核心点,大家感兴趣可以关注起来。
Python编程爱好者
2024/05/13
9110
最强总结!8个线性回归核心点!!
笔记︱范数正则化L0、L1、L2-岭回归&Lasso回归(稀疏与特征工程)
监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,
悟乙己
2019/05/26
3K0
推荐阅读
相关推荐
解读正则化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档