数学建模学习:岭回归和lasso回归

article/2025/9/13 2:42:29

线性回归

在多元线性回归模型中,估计回归系数使用的是OLS,并在最后讨论异方差和多重共线性对模型的影响。事实上,回归中自变量的选择大有门道,变量过多可能会导致多重共线性问题导致回归系数不显著,甚至造成OLS估计失效。

岭回归和lasso回归在OLS回归模型的损失函数上加上了不同的惩罚项,该惩罚项由回归系数的函数组成,一方面,加入的惩罚项能够识别出模型中不重要的变量,对模型起到简化作用,可以看作逐步回归法的升级版,另一方面,加入的惩罚项让模型变得可估计,即使原数据矩阵不满足列满秩。

线性回归模型

在标准线性回归中,通过最小化真实值( y i y_{i} yi)和预测值( y ^ i \hat{y}_{i} y^i)的平方误差来训练模型,这个平方误差值也被称为残差平方和(RSS, Residual Sum Of Squares):
R S S = ∑ i = 1 n ( y i − y ^ i ) 2 R S S=\sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2} RSS=i=1n(yiy^i)2
最小二乘法即最小残差平方和,为:
J β ( β ) = arg ⁡ min ⁡ β ∑ i = 1 p ( y i − x i β i − β 0 ) 2 J_{\beta}(\beta)=\underset{\beta}{\arg \min } \sum_{i=1}^{p}\left(y_{i}-x_{i} \beta_{i}-\beta_{0}\right)^{2} Jβ(β)=βargmini=1p(yixiβiβ0)2
将其化为矩阵形式:
J β ( β ) = arg ⁡ min ⁡ β ( Y − X β ) T ( Y − X β ) J_{\beta}(\beta)=\underset{\beta}{\arg \min }(Y-X \beta)^{T}(Y-X \beta) Jβ(β)=βargmin(YXβ)T(YXβ)
求解为:
β = ( X T X ) − 1 X T Y \beta=\left(X^{T} X\right)^{-1} X^{T} Y β=(XTX)1XTY
由于求解 β \beta β,需要假设矩阵 X T X X^{T} X XTX是满秩矩阵
然而 X T X X^{T} X XTX往往不是满秩矩阵或者某些列之间的线性相关性比较大,例如会出现变量数(属性数)远超过样例数,导致 X X X的列数多于行数, X T X X^{T} X XTX显然不满秩,可解出多个 β \beta β,使得均方误差最小化,即在多元回归中,特征之间会出现多重共线问题,使用最小二乘法估计系数会出现系数不稳定问题,缺乏稳定性和可靠性。

岭回归

在矩阵 X T X X^{T} X XTX的对角线元素加一个小的常数值 λ \lambda λ,取其逆求得系数:
β ^ ridge  = ( X T X + λ I n ) − 1 X T Y \hat{\beta}_{\text {ridge }}=\left(X^{T} X+\lambda I_{n}\right)^{-1} X^{T} Y β^ridge =(XTX+λIn)1XTY
I n I_{n} In为单位矩阵,对角线全为1,类似山岭
λ \lambda λ是岭系数,改变其数值可以改变单位矩阵对角线的值

随后代价函数 J β ( β ) J_{\beta}(\beta) Jβ(β) R S S RSS RSS基础上加入对系数值的惩罚项:
J β ( β ) = R S S + λ ∑ j = 0 n β j 2 = R S S + λ ∥ β ∥ 2 \begin{aligned} J_{\beta}(\beta) &=R S S+\lambda \sum_{j=0}^{n} \beta_{j}^{2} \\ &=R S S+\lambda\|\beta\|^{2} \end{aligned} Jβ(β)=RSS+λj=0nβj2=RSS+λβ2
矩阵形式为:
J β ( β ) = ∑ i = 1 p ( y i − X i β ) 2 + λ ∑ j = 0 n β j 2 = ∑ i = 1 p ( y i − X i β ) + λ ∥ β ∥ 2 \begin{aligned} J_{\beta}(\beta) &=\sum_{i=1}^{p}\left(y_{i}-X_{i} \beta\right)^{2}+\lambda \sum_{j=0}^{n} \beta_{j}^{2} \\ &=\sum_{i=1}^{p}\left(y_{i}-X_{i} \beta\right)+\lambda\|\beta\|^{2} \end{aligned} Jβ(β)=i=1p(yiXiβ)2+λj=0nβj2=i=1p(yiXiβ)+λβ2
λ \lambda λ是超参数,用来控制对 β J \beta_{J} βJ的惩罚强度, λ \lambda λ值越大,生成的模型就越简单

λ \lambda λ的选择方法

1.岭迹分析法(主观性强)
(1)各回归系数的岭估计稳定
(2)用最小二乘法估计时符号不合理的回归系数,其岭估计的符号变得合理
(3)回归系数没有不合乎经济意义的绝对值
(4)残差平方和增长不太多

2.VIF法(方差膨胀因子)
β \beta β V I F VIF VIF>10,数据列与列指标之间存在多重共线性,因此我们可以不断增加 λ \lambda λ的值来不断减少 V I F VIF VIF,知道所有的 β \beta β V I F VIF VIF>10,确定理想的 λ \lambda λ的值

3.最小化均方预测误差(最广泛,最准确)
我们使用K折交叉验证的方法,来选择最佳的调整参数。所谓的k折交叉验证,就是把样本数据随机分为k等份,将第1个子样本作为验证集而保留不用,剩余k-1个子样本作为训练集来估计模型,再以此预测第1个子样本,并计算第1个子样本的均方预测误差(MSPE)。之后,将第2个子样本作为验证集,剩余k-1个子样本作为训练集来预测第2个子样本,并计算第二个子样本的MSPE。以此类推,将所有子样本的MSPE加总,可以获得整个样本的MSPE,最后选择调整参数,使得整个样本的MSPE最小,从而确定最理想的 λ \lambda λ的值,具有最佳的预测能力。
需要保证数据的量纲一致,若量纲不一致应对数据进行标准化处理。

Lasso回归

代价函数 J β ( β ) J_{\beta}(\beta) Jβ(β) R S S RSS RSS基础上加入对系数值的惩罚项:
J β ( β ) = R S S + λ ∑ j = 0 n ∣ β j ∣ = R S S + λ ∣ β ∣ \begin{aligned} J_{\beta}(\beta) &=R S S+\lambda \sum_{j=0}^{n} |\beta_{j}| \\ &=R S S+\lambda|\beta| \end{aligned} Jβ(β)=RSS+λj=0nβj=RSS+λβ
岭回归与Lasso回归最大的区别在于岭回归引入的是L2范数惩罚项,Lasso回归引入的是L1范数惩罚项。
矩阵形式为:
J β ( β ) = ∑ i = 1 p ( y i − X i β ) 2 + λ ∑ j = 0 n ∣ β j ∣ = ∑ i = 1 p ( y i − X i β ) + λ ∣ β ∣ \begin{aligned} J_{\beta}(\beta) &=\sum_{i=1}^{p}\left(y_{i}-X_{i} \beta\right)^{2}+\lambda \sum_{j=0}^{n} |\beta_{j}| \\ &=\sum_{i=1}^{p}\left(y_{i}-X_{i} \beta\right)+\lambda|\beta| \end{aligned} Jβ(β)=i=1p(yiXiβ)2+λj=0nβj=i=1p(yiXiβ)+λβ
其中 λ \lambda λ称为正则化参数,如果 λ \lambda λ选取过大,会把所有参数θ均最小化,造成欠拟合,如果 λ \lambda λ选取过小,会导致对过拟合问题解决不当。
岭回归与Lasso回归最大的区别在于岭回归引入的是L2范数惩罚项,Lasso回归引入的是L1范数惩罚项。Lasso回归能够使得损失函数中的许多 β \beta β均变成0,这点要优于岭回归,因为岭回归是要所有的 β \beta β均存在的,这样计算量Lasso回归将远远小于岭回归。(升级版的逐步回归
Lasso的缺点也很明显,Lasso没有显示解,只能使用近似估计算法(坐标轴下降法和最小角回归法)

案例分析

分析棉花年产量与种子费,化肥费,农药费,机械费,灌溉费之间的关系
在这里插入图片描述
因为数据量纲一致,所以不需要对数据进行标准化处理,我们可以使用stata来对数据进行回归处理,在回归处理结束后,计算 β \beta β的方差膨胀因子检验变量之间是否存在多重共线性

请添加图片描述

我们可以明显看到回归系数的 V I F VIF VIF明显大于10,因此变量之间有较强的多重共线性。
由于lasso回归的计算量显著小于岭回归,因此我们在处理多重共线性回归分析中大多使用lasso回归,在选择 λ \lambda λ时,岭迹分析法具有较强的主观性,不利于准确的测定,而 V I F VIF VIF法在实际中几乎不用,因为岭回归基本筛选不出变量,所以在实际生活大多使用最小化均方预测误差方法

请添加图片描述
通过对数据进行最小化均方预测误差,stata会在最小的MSPE的一栏中标注*号,以此确定合适的 λ \lambda λ的值。
请添加图片描述
上表右边第1列即为Lasso所估计的变量系数。其中,除常数项外,只有3个变量的系数为非零,而其余变量(未出现在表中)的系数则为 0。考虑到作为收缩估计量的Lasso存在偏差(bias),上表右边第2列汇报了“Post Lasso”估计量的结果,即仅使用Lasso进行变量筛选,然后扔掉 Lasso 的回归系数,再对筛选出来的变量进行OLS回归。
注意:以上结果可能随着我们之前设置的随机数种子变化,因为lasso回归的估计是近似算法,且剔除的多重共线性变量是相对的。

总结

岭回归在stata使用中会存在bug,如遇到需要岭回归计算的问题,最好使用python实现
何时使用lasso回归:
我们首先使用一般的OLS对数据进行回归,然后计算方差膨胀因子 V I F VIF VIF,如果 V I F VIF VIF>10时,变量之间存在多重共线性,此时我们需要对变量进行筛选。
我们可以使用逐步回归法来筛选自变量,让回归中仅留下显著的自变量来抵消多重共线性的影响,在学习lasso后可以把lasso回归视为逐步回归法的进阶版,我们可以使用lasso回归来帮我们筛选出不重要的变量,步骤如下:
(1)判断自变量的量纲是否一样,如果不一样则首先进行标准化的预处理;(2)对变量使用lasso回归,记录下lasso回归结果表中回归系数不为0的变量,这些变量就是最终我们要留下来的重要变量,其余未出现在表中的变量可视为引起多重共线性的不重要变量。
在得到了重要变量后,我们实际上就完成了变量筛选,此时我们只将这些重要变量视为自变量,然后进行回归,并分析回归结果即可。(注意:此时的变量可以是标准化前的,也可以是标准化后的,因为lasso只起到变量筛选的目的)

岭回归python代码

def reg_model_Ridge(x,y,alphas,dim):''';岭回归估计:param x::param y::param alphas: 随机生成多个模型参数Lambda:param dim:维度:return: ridge_B 最优模型的系数'''model_coff=[]for alpha in alphas:ridge = Ridge(alpha=alpha,normalize=True)ridge.fit(x,y)model_coff.append(ridge.coef_)# if dim<=10:#plot_data(alphas, model_coff, 'Log Alpha', 'Cofficients', 'alpha系数与岭回归系数的关系 ,dim='+str(dim))# 交叉验证,找到模型最优的Lambda值ridge_cv= RidgeCV(alphas=alphas,normalize=True,scoring="neg_mean_absolute_error", cv=5)ridge_cv.fit(x,y)ridge_best_lambda = ridge_cv.alpha_# 建立最优模型ridge = Ridge(alpha=ridge_best_lambda,normalize=True)ridge.fit(x,y)# 得到最优模型的系数ridge_B = ridge.coef_return ridge_B

http://chatgpt.dhexx.cn/article/IQv8E7Y5.shtml

相关文章

python机器学习| 岭回归介绍及实现

岭回归介绍及实现 1 岭回归的引入2 岭回归的原理2.1 原理介绍2.2 原理代码实现 3 API 实现 1 岭回归的引入 在线性回归-正规方程和梯度下降中&#xff0c;我们介绍了基于正规方程或者梯度下降的优化算法&#xff0c;来寻找最优解。 在正规方程解中&#xff0c;它是基于直接求导…

岭回归与lasso回归算法

模型压缩与正则化主要包含岭回归&#xff08;Ridge regression&#xff09;和Lasso两种方法&#xff0c;二者的主要原理是将系数往等于0的方向压缩。 岭回归 lasso 全称&#xff1a;Least absolute shrinkage and selection operator最小绝对缩减和选择算子 一、岭回归示…

岭回归-回归实操

python 岭回归算法之回归实操 基本概念 正则化 正则化是指对模型做显式约束&#xff0c;以避免过拟合。本文用到的岭回归就是L2正则化。&#xff08;从数学的观点来看&#xff0c;岭回归惩罚了系数的L2范数或w的欧式长度&#xff09; 正则化的具体原理就不在这里多叙述了&a…

线性回归与岭回归

目录 一、什么是线性回归 1.线性回归简述 2.数组和矩阵 3.线性回归的算法 二、权重的求解 1.正规方程 2.梯度下降 三、线性回归案例 1.案例概述 2.数据获取 3.数据分割 4.数据标准化 5.模型训练 6.回归性能评估 7.梯度下降与正规方程区别 四、岭回归Ridge 1.过拟…

什么是岭回归?

问题引出&#xff1a; 当使用最小二乘法解决一下线性回归&#xff1a; 假设:已知x1,x2与y的关系服从线性回归模型&#xff1a; y102x13x2c 当x1和x2存在线性相关性时&#xff0c;使用最小二乘法来预测回归模型&#xff0c;就变得困难起来&#xff0c;因此物品们必须使用逐步回…

岭回归总结

岭回归存在的目的&#xff1a; 解决多重共线性下&#xff0c;最小二乘估计失效的问题 岭回归的作用&#xff1a;(在引入变量太多&#xff0c;又存在多重共线性&#xff0c;难以抉择去留哪个变量时可以通过该方法筛选变量) 1.找出多重共线性的变量&#xff0c;并提剔除部分 2…

岭回归(ridge regression)

岭回归&#xff08;ridge regression&#xff09; 在处理回归问题时&#xff0c;常遇到的问题 在处理复杂的数据的回归问题时&#xff0c;普通的线性回归会遇到一些问题&#xff0c;主要表现在&#xff1a;   预测精度&#xff1a;这里要处理好这样一对为题&#xff0c;即样…

【回归分析】一文读懂岭回归,附案例教学

1、作用 岭回归是一种专用于共线性数据分析的有偏估计回归方法&#xff0c;实质上是一种改良的最小二乘估计法&#xff0c;通过放弃最小二乘法的无偏性&#xff0c;以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法&#xff0c;对病态数据的拟合要强…

人工智能——岭回归(Python)

目录 1 概述 1.1 线性回归 1.2 岭回归 1.3 过拟合 2 sklearn中的岭回归 3 案例 3.1 数据介绍&#xff1a; 3.2 实验目的&#xff1a; 3.3 数据特征如下&#xff1a; 4 Python实现 4.1 代码 4.2 结果 5 正则化 1 概述 1.1 线性回归 对于一般地线性回归问题&am…

岭回归(Ridge Regression)和Lasso回归

1、岭回归&#xff08;Ridge Regression&#xff09; 标准线性回归&#xff08;简单线性回归&#xff09;中&#xff1a; 如果想用这个式子得到回归系数&#xff0c;就要保证(X^TX)是一个可逆矩阵。 下面的情景&#xff1a;如果特征的数据比样本点还要多&#xff0c;数据特征…

岭回归详解 从零开始 从理论到实践

岭回归详解 从零开始 从理论到实践 一、岭回归的理解1.1、LinearRegression的回顾1.2、岭回归 - Ridge Regression 二、sklearn的使用2.1、方法、参数与属性2.1.1、特征标准化 - StandardScaler2.1.2、岭回归 - Ridge2.1.3、内置交叉验证岭回归 - RidgeCV 2.2、实例应用2.2、简…

分布式之Quorum NWR算法

写在前面 假设现在我们实现了AP 系统&#xff0c;但是公司突然要对某些业务进行实时的数据计算&#xff0c;并且要求按照强一致性的方式来读取数据&#xff0c;此时作为系统设计这的我们该怎么办呢&#xff1f;单独为这部分业务实时抽出最新数据&#xff1f;还是修改原有系统&…

glusterfs:Server-quorum和Client Quorum

overview 这两个参数在容错场景中发挥着巨大的作用。用户借助这两个参数 既可以手动控制存在多少个活着的节点表示集群健康&#xff0c;也可以把这个控制权交给集群。 Server-quorum 由两个参数组成 cluster.server-quorum-type: none | server 如果设置为server表示启动了s…

Quorum机制

/******************************************************** 原文链接&#xff1a;http://www.cnblogs.com/jzhlin/archive/2012/07/23/2605077.html ********************************************************/ 分布式系统的设计中会涉及到许多的协议、机制用来解决可靠性问…

Elasticsearch:理解 Master,Elections,Quorum 及 脑裂

集群中的每个节点都可以分配多个角色&#xff1a;master、data、ingest、ml&#xff08;机器学习&#xff09;等。 我们在当前讨论中感兴趣的角色之一是 master 角色。 在 Elasticsearch 的配置中&#xff0c;我们可以配置一个节点为 master 节点。master 角色的分配表明该节点…

Quorum简介部署

文章目录 简介账户/密钥管理隐私私有交易管理器 (Private transaction Manager)enclave公有/私有状态 状态验证交易和合约隐私 (Transaction and Contract Privacy)参考 简介 GoQuorum基于geth&#xff0c;在其基础上增加了一些联盟链需要的组件&#xff0c;主要包括以下几点&…

分布式系统理论之Quorum机制

一&#xff0c;Quorum机制介绍 对于数据存储而言&#xff0c;为了提高可用性&#xff08;Availability&#xff09;&#xff0c;采用了副本备份&#xff0c;比如对于HDFS&#xff0c;默认每块数据存三份。某数据块所在的机器宕机了&#xff0c;就去该数据块副本所在的机器上读…

Hyperledger/Quorum等区块链技术综述

[1]邵奇峰,张召,朱燕超,周傲英.企业级区块链技术综述[J].软件学报,2019,30(09):2571-2592. 摘要&#xff1a;在传统跨机构交易的企业应用中,各个机构都是独立记录己方的交易数据,机构间数据的差异会引起争议,通常需要人工对账或中介机构来解决,因而增加了结算时间和交易费用.区…

基于以太坊项目quorum多机多节点搭建_1

准备工作 环境搭建 我这里使用4台虚拟机来模拟实际网络&#xff0c;在这四台虚拟机里分别搭建了quorum节点。 我这里使用quorum maker 工具来搭建quorum quorum maker 是一个带UI界面的自动化搭建quorum的工具。 quorum maker 安装 git clone https://github.com/synechr…

Quorum白皮书

Quorum白皮书下载