lasso回归_线性回归amp;lasso回归amp;岭回归介绍与对比
1. 回顾最小二乘法
详细的解释在以下这个链接
https://www.matongxue.com/madocs/818
简而言之,最小二乘法展现了平方误差值最小的时候,就是最好的拟合回归线。
2. 线性回归的五大假设:
假设一:误差的分布是正态分布
因为只有误差的分布是正态分布的时候,最小二乘估计才是最优解/最有可能的值。
如果误差项不呈正态分布,意味着置信区间会变得很不稳定,我们往往需要重点关注一些异常的点(误差较大但出现频率较高),来得到更好的模型。
假设二:误差的方差是常数
如果误差的方差不是常数,也就是异方差性。那么在假设一中说了误差的分布需要是正态分布,也就是与方差得是一个常数矛盾。所以当误差的方差是一个可变值的时候,意味着当我们进行建立回归模型的时候,往往会高估误差项(outlier)的重要性,导致回归效果不好。
假设三:误差项之间相互独立
同理,在假设一中,若误差项的分布为正态分布,那么误差项之间也需要相互独立。如果误差项之间不相互独立的话,那么就是说明他们存在自相关性。也就是后一项的值会受到前一项的影响(常常出现在时间序列数据集上)。当自相关性发生的时候,我们测的标准差往往会偏小,进而会导致置信区间变窄。
假设四:不存在多重共线性
首先,要弄清楚多重共线性与变量之间不存在相关关系区别开。变量之间没有多重共线性,不意味着他们没有相关关系,反之亦然。
多重共线性是指,如果我们发现本应相互独立的自变量们出现了一定程度(甚至高度)的相关性,那我们就很难得知自变量与因变量之间真正的关系了。
当多重共线性性出现的时候,变量之间的联动关系会导致我们测得的标准差偏大,置信区间变宽。那也就是说,使用最小二乘法求解得到的回归线不再是最佳的,有效性减小。
https://zhidao.baidu.com/question/202672845122566165.htmlzhidao.baidu.com
假设五:线性性与可加性
线性性:X1每变动一个单位,Y相应变动a1个单位,与X1的绝对数值大小无关。
可加性:X1对Y的影响是独立于其他自变量(如X2)的。
回归分析的五个基本假设_Noob_daniel的博客-CSDN博客blog.csdn.net
3. 代价函数与求解代价函数
线性回归的一般形式:
如何求得θ使得损失函数达到最小值呢?
方法一:梯度下降法
梯度下降法基础知识
1) 梯度:
在微积分里面,对多元函数参数求偏导数,把求的各参数的偏导数以向量的形式写出来,就是梯度。
梯度向量从几何意义上讲,就是函数变化增加最快的地方,沿着梯度向量的方向更容易找到函数的最大值,沿着向量相反的方向,梯度减小最快,更容易找到函数最小值。
2) 梯度下降与梯度上升可以互相转化。求损失函数f(θ)的最小值,用梯度下降法迭代,亦可反过来求损失函数 -f(θ)的最大值,用梯度上升法。
吴恩达 机器学习笔记二(lecture 2)(损失函数、梯度下降)blog.csdn.net
方法二:正规方程法
因为正规方程法只适用于线性模型,使用几率较小,所以不做介绍,感兴趣的朋友可以自行了解~
4. 为什么需要lasso回归与岭回归(ridge) ?这两个回归又是什么?
与逻辑回归一样,线性回归同样面临着在training的时候过分依赖训练集的数据,导致过拟合问题,所以我们需要在原线性回归的损失函数中加点别的东西,让回归/拟合过程中减少对训练集的“关注”。同样地,采取的策略就是在损失函数中加入正则项L1或者L2.
lasso regression = linear regression + L1 regularization
ridge regression = linear regression + L2 regularization
5. lasso回归与岭回归(ridge) 两者的区别
这两种回归的区别归根到底是L1和L2两种正则项的区别。在我的上一篇文章中有详细介绍L1和L2的特点,大家有兴趣可以去翻看(当然现在也会再次简单介绍)。
从第四节的公式中,我们知道随着正则化强度的增大,θ的取值会逐渐变小,L1正则化会将参数压缩到0,L2正则化只会让参数尽量小,不会取到0. 所以在L1正则化在逐渐加强的过程中,相对不重要的特征的参数会比相对重要的特征的参数更快地变成0. 所以L1正则化本质是一个特征选择的过程。选出少量但重要的特征,以防止过拟合问题。而L2正则化在加强的过程中,会尽量让每个特征对模型都有一些贡献,相对不重要的特征的参数会非常接近0.
以二维数据空间为例,说明Lasso和Ridge两种方法的差异,左图对应于Lasso方法,右图对应于Ridge方法。
如上图所示,两个图是对应于两种方法的等高线与约束域。红色的椭圆代表的是随着λ的变化所得到的残差平方和,βˆ为椭圆的中心点,为对应普通线性模型的最小二乘估计。左右两个图的区别在于约束域,即对应的蓝色区域。
等高线和约束域的切点就是目标函数的最优解,Ridge方法对应的约束域是圆,其切点只会存在于圆周上,不会与坐标轴相切,则在任一维度上的取值都不为0,因此没有稀疏;对于Lasso方法,其约束域是正方形,会存在与坐标轴的切点,使得部分维度特征权重为0,因此很容易产生稀疏的结果。
所以,Lasso方法可以达到变量选择的效果,将不显著的变量系数压缩至0,而Ridge方法虽然也对原本的系数进行了一定程度的压缩,但是任一系数都不会压缩至0,最终模型保留了所有的变量。
以二维空间为例,约束域在L1中,为
,对应左图蓝色。
约束域在L2中,为
,对应左图蓝色。
由图也可以看出,Lasso的复杂程度由λ来控制,λ越大对变量较多的线性模型的惩罚力度就越大,从而最终获得一个变量较少的模型。
回归问题-Lasso回归_越努力 越幸运-CSDN博客blog.csdn.net
所以,lasso回归与岭回归在数据集中的变量之间具有高维度和多重共线性的情况下也能有良好的效果。
lasso回归_线性回归amp;lasso回归amp;岭回归介绍与对比相关推荐
- python 回归去掉共线性_线性回归中的多重共线性与岭回归
上篇文章<简单而强大的线性回归详解>(点击跳转)详细介绍了线性回归分析方程.损失方程及求解.模型评估指标等内容,其中在推导多元线性回归使用最小二乘法的求解原理时,对损失函数求导得到参数向量 ...
- 怎么用python实现回归_手把手教你用Python进行回归(附代码、学习资料)-阿里云开发者社区...
我刚开始学习数据科学时,第一个接触到的算法就是线性回归.在把这个方法算法应用在到各种各样的数据集的过程中,我总结出了一些它的优点和不足. 首先,线性回归假设自变量和因变量之间存在线性关系,但实际情况却 ...
- 【机器学习入门】(8) 线性回归算法:正则化、岭回归、实例应用(房价预测)附python完整代码和数据集
各位同学好,今天我和大家分享一下python机器学习中线性回归算法的实例应用,并介绍正则化.岭回归方法.在上一篇文章中我介绍了线性回归算法的原理及推导过程:[机器学习](7) 线性回归算法:原理.公式 ...
- 高斯拟合 vc++代码_使用python+sklearn实现核岭回归和高斯回归的比较
核岭回归(KRR)和高斯回归(GPR)都通过在内部采用"内核技巧"来学习目标函数.KRR学习使用相应核函数(该核函数对应于原始空间中的非线性函数)将目标函数映射到内核空间中的线性函 ...
- python 多分类逻辑回归_机器学习实践:多分类逻辑回归(softmax回归)的sklearn实现和tensorflow实现...
本文所有代码及数据可下载. Scikit Learn 篇:Light 版 scikit learn内置了逻辑回归,对于小规模的应用较为简单,一般使用如下代码即可 from sklearn.linear ...
- 套索回归 岭回归_岭和套索回归简介
套索回归 岭回归 Recently my class has been covering topics of regression and classification. We are now abl ...
- 多元线性回归算法: 线性回归Linear Regression、岭回归Ridge regression、Lasso回归、主成分回归PCR、偏最小二乘PLS
0. 问题描述 输入数据:X=(x1,x2,....,xm)\mathbf{X} = (x_1, x_2,...., x_m)X=(x1,x2,....,xm), 相应标签 Y=(y1,y2,. ...
- 应用预测建模第六章-线性回归-预测化合物溶解度练习-R语言(多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网)
模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max K ...
- 【sklearn】线性回归、最小二乘法、岭回归、Lasso回归
文章目录 机器学习的sklearn库 一.回归分析 <1.1>线性回归 1.1.1.Python实现线性回归 <1.2>最小二乘法 1.2.1.MATLAB实现最小二乘法 1. ...
最新文章
- cocos2d-x解决中文乱码问题的几种办法
- 熟悉常用的HBase操作,编写MapReduce作业
- 腾讯笔试题 如下代码,result变量的输出结果是多少
- SpringBoot-SpringCloud-版本对应关系
- 本地 服务器 文件传输,本地服务器文件传输
- 华为上机试---购物单(算法:背包问题)
- Java与Web前端发展前景及薪资对比
- LinuxMint下的Orionode源码安装
- 聊天demo SignalR
- 小米8 微信支付 java_小米微信WAP支付SDK接入指南
- 服务器被恶意攻击可以报警吗?
- 视频录制——SurfaceView + MediaRecorder 实现视频录制功能
- 2022专转本计算机大类
- java邮箱465端口发送验证码,htmlmail465,465端口发邮件
- jchdl - RTL实例 - MOS6502 ALU (Verilog)
- MongoDB使用中的一些问题
- 利用二维数组(double[])实现一个矩阵类:Matrix。要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu
- IDEA 不识别application.properties或application.yml或pom.xml文件
- HYPACK的硬件OFFSET设置问题
- c++读取obj文件的数据 其中f中只取面片定点数据