岭回归有看点:正则化参数解密,显著性不再成问题!

news2024/12/23 10:20:10

一、概述

「L2正则化(也称为岭回归)」 是一种用于线性回归模型的正则化方法,它通过在模型的损失函数中添加一个惩罚项来防止过拟合。L2正则化的惩罚项是模型参数的平方和,乘以一个正则化参数λ,即:

L2正则化参数 = λ * (模型参数的平方和)

其中,λ是一个超参数,用于控制正则化的强度。

「L2正则化」的作用是通过惩罚较大的模型参数,使得模型更加平滑,减少模型的复杂性,从而提高模型的泛化能力。L2正则化可以防止过拟合,特别是当训练数据集较小或者存在多重共线性时,L2正则化可以提高模型的性能。

二、数据集

首先,我们加载数据集:

data(mtcars)
head(mtcars)

# 输出结果
#                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
# Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
# Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
# Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
# Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
# Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
# Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

三、岭回归

在R语言中,可以使用linearRidge函数进行岭回归分析,并使用summary函数查看结果。当使用岭回归时,正则化参数λ对于问题的解来说是至关重要的。在岭回归中,随着λ的增加,模型的复杂度减小,使得参数变得更加稳定和显著。因此,当λ的值越大时,岭回归系数也越大,并且具有更高的显著性,这可能是与您观察到的结果相关的原因。



# 使用linearRidge函数进行岭回归分析
install.packages("ridge")
library(ridge)
library(MASS)
library(ggplot2)

# 使用mtcars数据集
data(mtcars)

# 生成自变量和因变量
X <- as.matrix(mtcars[, -1])
y <- mtcars[, 1]

# 岭回归
fit <- linearRidge(mpg ~ ., data = mtcars, lambda = 0.1)

# 计算系数的标准误
fit.se <- sqrt(diag(solve(t(X) %*% X + fit$lambda * diag(ncol(X)))))
fit$se <- fit.se

# 将标准误为0的值替换为1e-10
fit.se[fit.se==0] <- 1e-10

# 计算系数的P值
t_value <- fit$coef / fit$se
df <- nrow(X) - ncol(X)
p_value <- 2 * pt(abs(t_value), df = df, lower.tail = FALSE)

# 将系数、标准误和P值合并到一个数据框中
result <- data.frame(lambda = fit$lambda, coef = fit$coef, se = fit$se, p_value = p_value)

result

# 绘制岭回归系数的棒图
ggplot(result, aes(x = 1:length(fit$coef), y = coef, fill = p_value < 0.05)) +
  geom_bar(stat = "identity", width = 0.5, color = "black") +
  geom_errorbar(aes(ymin = coef - se, ymax = coef + se), width = 0.2) +
  theme_bw() +
  labs(title = "Ridge Regression Coefficients and Standard Errors",
       x = "Variable Index", y = "Coefficient")

执行结果展示:

     lambda      coef          se      p_value
cyl     0.1 -2.656036 0.287385523 4.964885e-09
disp    0.1 -1.656252 0.006615594 1.669437e-39
hp      0.1 -4.906065 0.008149868 6.939783e-48
drat    0.1  2.926048 0.547854611 2.316967e-05
wt      0.1 -9.921048 0.690973553 1.180421e-12
qsec    0.1  2.894217 0.170656138 4.054759e-14
vs      0.1  1.409633 0.764781699 7.881732e-02
am      0.1  5.773137 0.730119979 7.162408e-08
gear    0.1  2.561253 0.503370358 4.256271e-05
carb    0.1 -5.980529 0.304172379 1.902781e-15

  • lambda:lambda 是在岭回归中用于正则化的超参数,控制模型的复杂度,同时也影响模型选择哪些自变量。在岭回归过程中,我们用一系列 lambda 值来建立一系列模型,并通过交叉验证等方法来确定最佳的 lambda 值,以保证模型的泛化能力和预测能力。

  • coef:coef 表示岭回归模型中各个参数的系数估计值。它们表示模型对于每个自变量的预测权重,即每个自变量对因变量的影响程度。

  • se:se 是系数估计值的标准错误,用于表示对于某一自变量的系数估计,其真实值与样本估计值之间的偏离程度。标准误差越小,说明该系数估计值越可靠。

  • p_value:p-value 表示在假设检验中对应的概率值,通常用于衡量某一自变量的系数估计值在统计意义下是否显著不为 0。一般情况下,p-value < 0.05 表示该自变量的系数估计值能够显著区别于 0,即该变量对因变量有着显著影响。

该图显示了岭回归模型的系数估计值,每个自变量的估计值用一个棒图表示。棒图中心的水平线表示该自变量的估计值,棒图的长度表示该估计值的标准误。估计值的颜色表示相应的 p-value 显著性检验结果,绿色表示 p-value >= 0.05,红色表示 p-value < 0.05。从图中可以看出,am、hp、wt 和 gear 这四个自变量在岭回归中对 mpg 有显著的影响,其余的自变量的系数估计值非常接近于零,说明它们对 mpg 的影响可以忽略不计。由于使用了岭回归,这表明偏差-方差折衷的技术可以对模型偏差进行约束并选择出最相关的特征。

「预测结果和实际值的比较:」

# 预测新数据
newdata <- data.frame(mtcars[, -1])
newdata$ridge_pred <- predict(fit, newdata)

# 将预测结果添加到原始数据集上
mtcars$ridge_pred <- predict(fit, mtcars[, -1])

# 绘制实际值和预测值的散点图
ggplot(mtcars, aes(x = mpg, y = ridge_pred)) +
  geom_point() +
  geom_line(aes(x = mpg, y = mpg), color = "red") +
  theme_bw() +
  labs(title = "Ridge Regression Prediction Results",
       x = "Actual mpg", y = "Predicted mpg")

可以看到,这个预测结果和实际结果相差还是不大的,几乎在线的左右,有一定的预测价值。

四、总结

岭回归在实际应用中,常用于以下场景:

  1. 「数据预处理」:在数据预处理阶段,可以使用岭回归来解决多重共线性问题,提高模型的稳定性和效果。

  2. 「特征选择」:岭回归可以用于特征选择,通过调整正则化参数,可以控制模型系数的大小,对无关自变量的系数进行惩罚,进而筛选出对模型解释力度高的重要特征。

  3. 「预测建模」:岭回归也可以用于预测建模,通过适当地调整正则化参数可以控制模型的复杂度,同时避免过拟合问题,提高模型的泛化能力。

总之,岭回归是一个广泛应用于回归问题的经典模型,具有良好的解释性和稳定性,是数据科学和机器学习领域中必不可少的工具之一。

末尾,我们提一个问题哈,lambda这个值怎么选比较合理?采用什么算法来选择?如果有想了解的,欢迎关注和私信我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初阶二叉树的相关题目

前言&#xff1a; 前面我们介绍了初阶二叉树的相关知识&#xff0c;二叉树常考的还是链式二叉树&#xff0c;而且二叉树也会考很多选择题&#xff0c;本文重点是在给出一些常考的二叉树的性质定理推导和经典练习题目配合强化巩固知识。 目录 一、二叉树的常见性质定理 二、常…

你的业务被AI所取替的风险度有多高?AI社交、克隆人、角色扮演、代理人

hi&#xff0c;大家好&#xff0c;最近我们陆续会推出各种实验性项目&#xff0c;把我们在AIGC和数字体验上的思考进行验证&#xff0c;欢迎持续关注我们的进展。&#xff08;文末领取PDF&#xff09; 目前&#xff0c;已经有不少的例子证明了ChatGPT有多好用了。 亚马逊员工在…

定制比例阀控制放大器

定制比例阀控制放大器是为特定应用场景设计的定制化控制系统。它可以根据客户的需求和应用要求&#xff0c;配置输入输出及颤振频率等参数&#xff0c;对现有的控制器进行修改和优化&#xff0c;以满足特定的性能指标和功能要求。随着工业自动化技术的不断发展&#xff0c;定制…

关于安卓viewpager实现堆叠卡片交互

背景 长江后浪推前浪&#xff0c;无聊的需求一浪接一浪。 最近做到一个关于卡片堆叠的需求&#xff0c;觉得挺有意思&#xff0c;所以特此记录一下。 文末将附上源码链接 首先看设计图&#xff1a; 可以看到&#xff0c;是一个卡片堆叠的效果&#xff0c;关于这种UI的实现&…

Android系统安全技术---FBE密钥框架和技术详解

一、前言 用户数据加密是移动设备的重要功能&#xff0c;是使用对称加密算法对Android设备上的所有用户数据进行编码的过程&#xff0c;防止用户数据被未经授权的用户或应用程序访问。 本文是Android系统安全技术系列第二篇&#xff0c;主要介绍基于文件的加密技术。首先介绍An…

到底什么是“云手机”?

今天这篇文章&#xff0c;我们来聊一个很有趣的东东——云手机。 说到云手机&#xff0c;有些童鞋可能并不会觉得陌生。是的&#xff0c;它确实并不是一个新名词。早在2011年左右&#xff0c;国内就有厂商推出了云手机的概念。掐指一算&#xff0c;至今已经有12个年头了。 大家…

APP在应用市场内该如何做推广

苹果应用商城的自然流量都是通过精品推荐&#xff0c;畅销排行榜和搜索来获取的&#xff0c;此外&#xff0c;应用名称、副标题、应用截图视频、应用描述、用户评论、下载量、用户留存率还有曝光量&#xff0c;这些都是影响ASO优化的关键因素。 为了防止一些应用堆砌热词&…

传统设备充电接口如何升级成USB-C PD快充接口?

早在 2009 年开始&#xff0c;欧盟就致力于推动消费电子产品充电接口的统一进程&#xff0c;减少资源浪费推动绿色环保进程&#xff0c;同时充电配件通用化也为消费者带来更好的充电体验。2022 年 10 月 4 日&#xff0c;欧洲议会全体会议上表决通过&#xff0c;在 2024 年底之…

C++服务器框架开发8——日志系统LogFormatter_3/override/宏定义优化switchcase结构

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见&#xff1a;[C高级教程]从零开始开发服务器框架(sylar) 上一篇&#xff1a;C服务器框架开发7——日志系统LogFormatter_2 C服务器框架开发8——日志系统LogFormatter_3/override/宏定义优化switchcase…

代码随想录算法训练营day60 | 84.柱状图中最大的矩形

代码随想录算法训练营day60 | 84.柱状图中最大的矩形 84.柱状图中最大的矩形解法一&#xff1a;单调栈解法二&#xff1a;暴力双指针(会超时)解法三:优化双指针 总结 最后一天打卡留念! 84.柱状图中最大的矩形 教程视频&#xff1a;https://www.bilibili.com/video/BV1Ns4y1o7…

国产化麒麟linux系统QtCreator和QtCreator编译的程序无法输入中文libfcitx最新版本编译1.2.7

1.问题描述 麒麟linux系统QtCreator和QtCreator编译的程序无法输入中文&#xff0c;网上找了很多的libfcitxplatforminputcontextplugin.so库都无法使用正常输入&#xff1b; Qt版本&#xff1a;5.9.6 麒麟系统版本&#xff1a;海光麒麟桌面版kylin V10 SP1 小版本号2203 X…

一个多功能(聚合)查询接口,实现模糊、分页、主键、排序以及多条件查询

一个多功能(聚合)查询接口&#xff0c;实现模糊、分页、主键、排序以及多条件查询 前言 写的啰嗦了点&#xff0c;看效果请直接忽略中间&#xff0c;直接看后半部分。 引个流&#xff0c;公众号&#xff1a;小简聊开发 概念 瞎编的名字&#xff0c;哈哈哈&#xff0c;我就勉强…

一道北大强基题背后的故事(二)——出题者怎么想的?

早点关注我&#xff0c;精彩不错过&#xff01; 上篇文章中&#xff0c;我们给出一道北大强基考试中的试题&#xff0c;计算[((1 sqrt(5)) / 2) ^ 12]&#xff0c;给出了一条没有任何数学直觉&#xff0c;纯硬算的弯路以及题目的参考答案&#xff0c;相关内容请戳&#xff1a;…

IronPDF 2023.6.10 FOR NET CRACK

适用于.NET的IronPDF 2023.6.10 添加新的注释API并改进图像压缩逻辑。 2023年6月2日-14:42新版 特点 添加了新的连续进给选项。例如用于生成收据文档。 添加了新的注释API&#xff0c;包括注释删除。 添加了删除书签的功能。 将内存使用率和性能提高了10%。 改进了图像…

全球加速AEB「强标」,15万元以下车型或将「释放」巨量需求

目前&#xff0c;智能驾驶技术升级&#xff0c;主要是在帮助中高端车型提升产品竞争力&#xff0c;同时为车企构建未来软件付费盈利模式的转型。 但另一方面&#xff0c;基础辅助驾驶&#xff0c;尤其主动安全&#xff0c;比如&#xff0c;AEB&#xff08;自动紧急制动&#xf…

【企业化架构部署】基于Apache搭建LAMP架构

文章目录 前言一、LMAP架构介绍1.概念2.LAMP构建顺序3.LAMP编译安装4.各组件介绍4.1 Linux4.2 Apache4.3 MySQL4.4 PHP/Perl/Python 二、服务器部署1.Apache部署2.MySQL部署3.PHP部署4.安装论坛 前言 LAMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整…

考上大学,走进网安

出品&#xff5c;MS08067实验室&#xff08;www.ms08067.com&#xff09; 本文作者&#xff1a;北平靴 01 我和网络安全的相遇&#xff0c;说来很巧。2022年我考入吉林大学计算机学院&#xff0c;正巧我们的导助是学校ctf战队的成员&#xff0c;所以在刚入学的很清闲的日子里&a…

Python中logger模块的使用教程

参考模块&#xff1a; https://www.digitalocean.com/community/tutorials/how-to-use-logging-in-python-3 logger是python的内置模块&#xff0c;用以输出代码运行过程中的运行情况&#xff0c;极大的方便了我们的debug过程。参考资料中列出了使用logger相比于print优越的地方…

ResNet学习

目录 是什么作用怎么做论文阅读 视频来源&#xff1a;https://www.bilibili.com/video/BV1rZ4y1m7d9/?spm_id_from333.337.search-card.all.click&vd_sourcea402747bd6c153bdb2defee02a9cb617 https://www.bilibili.com/video/BV1rZ4y1m7d9/?spm_id_from333.788&vd_…

Java官方笔记5数字和字符串

Numbers Number的子类&#xff1a; 另外还有BigDecimal和BigInteger&#xff0c;用于高精度计算&#xff0c;AtomicInteger和AtomicLong用于多线程应用。 我们有时候需要用包装类而非基本数据类型&#xff0c;理由如下&#xff1a; 方法入参类型为Object&#xff0c;只能传入对…