当前位置: 首页 > news >正文

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

一、概述

「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这个值怎么选比较合理?采用什么算法来选择?如果有想了解的,欢迎关注和私信我。

相关文章:

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

一、概述 「L2正则化&#xff08;也称为岭回归&#xff09;」 是一种用于线性回归模型的正则化方法&#xff0c;它通过在模型的损失函数中添加一个惩罚项来防止过拟合。L2正则化的惩罚项是模型参数的平方和&#xff0c;乘以一个正则化参数λ&#xff0c;即&#xff1a; L2正则化…...

Android 12.0修改recovery 菜单项字体大小

1.概述 在Android 12.0进入recovery模式后,界面会g_menu_actions 菜单选项和 提示文字,而这些文字的大小不像上层一样是通过设置属性来表示大小的 而它确是通过字体png图片的大小来计算文字的宽和高的,然后可以修改字体大小 2. 修改recovery 菜单项字体大小的核心类 buil…...

【计算机网络】 7、websocket 概念、sdk、实现

文章目录 一、背景二、简介三、client3.1 ws 构造函数3.2 ws.readyState3.3 ws.onopen3.4 ws.onclose3.5 ws.onmessage3.6 ws.send3.7 ws.bufferedAmount3.8 ws.onerror 四、server4.1 go4.1.1 apifox client4.1.2 js client 五、范式 一、背景 已经有了 http 协议&#xff0c…...

python中的常见运算符

文章目录 算数运算符赋值运算关系运算符逻辑运算符非布尔值的与或非运算条件运算符(也叫三元运算符)运算符的优先级 算数运算符 加法运算符&#xff08;如果两个字符串之间进行加法运算&#xff0c;则会进行拼串操作&#xff09; - 减法运算符 * 乘法运算符&#xff08;如果将字…...

TypeScript类型

TypeScript 是什么&#xff1f; 是以avaScript为基础构建的语言个一JavaScript的超集。可以在任何支持JavaScript的平台中执行。TypeScript扩展了JavaScript,并添加了类型。TS不能被JS解析器直接执行&#xff0c;需要编译成js。 基本类型 声明完变量直赴进行赋值 let c: boo…...

Integer源码

介绍 Integer是int类型的包装类&#xff0c;继承自Number抽象类&#xff0c;实现了Comparable接口。提供了一些处理int类型的方法&#xff0c;比如int到String类型的转换方法或String类型到int类型的转换方法&#xff0c;当然也包含与其他类型之间的转换方法。 Comparable提供…...

【四】设计模式~~~创建型模式~~~建造者模式(Java)

【学习难度&#xff1a;★★★★☆&#xff0c;使用频率&#xff1a;★★☆☆☆】 4.1. 模式动机 无论是在现实世界中还是在软件系统中&#xff0c;都存在一些复杂的对象&#xff0c;它们拥有多个组成部分&#xff0c;如汽车&#xff0c;它包括车轮、方向盘、发送机等各种部件…...

MarkDown的基本使用方法

为了给官方的文档知识总结&#xff1a;Markdown 基本语法 | Markdown 官方教程 #空格内容&#xff1a;‘#’表示标题的等级&#xff0c;越少表示标题级别越高&#xff08;字越大&#xff09; 在一行的末尾加两个或多个空格再回车&#xff0c;就是我们普通的文本回车。【还有一…...

IDEA 安装配置步骤详解

引言 IntelliJ IDEA 是一款功能强大的集成开发环境&#xff0c;它具有许多优势&#xff0c;适用于各种开发过程。本文将介绍 IDEA 的主要优势&#xff0c;并提供详细的安装配置步骤。 介绍 IntelliJ IDEA&#xff08;以下简称 IDEA&#xff09;之所以被广泛使用&#xff0c;…...

【网络】· 路由器中配置单臂路由和DHCP,VTP原理

目录 &#x1f349;单臂路由的工作原理 &#x1f95d;交换机配置 &#x1f95d;路由器配置 &#x1f349;路由器配置DHCP &#x1f95d;配置实例 &#x1f95d;路由器配置 &#x1f95d;验证 &#x1f349;VTP工作原理 &#x1f95d;VTP模式 &#x1f95d;VTP通告 &#x1f95d…...

Python 子域名扫描工具:使用多线程优化

部分数据来源:ChatGPT 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 摘要:子域名扫描是一个重要的安全工作,它可以发现目标网站的更多威胁和漏洞。本文介绍了如何使用 Python 来编写一…...

宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问

文章目录 1.前言2.网站搭建2.1. 网页下载和安装2.2.网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测试5.结语 转发自cpolar极点云的…...

深入理解设计原则之单一职责原则(SRP)

系列文章目录 C高性能优化编程系列 深入理解设计原则系列 深入理解设计模式系列 高级C并发线程编程 SRP&#xff1a;单一职责原则 系列文章目录1、单一职责原则的定义和解读2、单一职责原则案例解读2.1、违背单一职责原则反面案例2.2、违背单一职责原则反面案例 - 解决方案 3…...

钉钉群通过短信转发器接收手机短信消息

1.短信转发器官网下载 下载地址 首发地址&#xff1a;https://github.com/pppscn/SmsForwarder/releases国内镜像&#xff1a;https://gitee.com/pp/SmsForwarder/releases网盘下载&#xff1a;https://wws.lanzoui.com/b025yl86h 访问密码&#xff1a;pppscn 使用文档 首发…...

【C++模版】模版进阶 {非类型模版参数; 模版的特化; 模版的分离编译; 模版总结}

一、非类型模版参数 模板参数分类型形参与非类型形参。 类型形参&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之后的参数类型名称。非类型形参&#xff1a;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数当成常量来…...

Azure Active Directory 的功能和优势

Azure Active Directory (Azure AD) 是 Microsoft 基于云的多租户目录和标识管理服务。 Azure AD 有助于支持用户访问资源和应用程序&#xff0c;例如&#xff1a; 位于企业网络上的内部资源和应用。 Microsoft 365、Azure 门户和 SaaS 应用程序等外部资源。 为组织开发的云应…...

mysql查询语句执行过程及运行原理命令

Mysql查询语句执行原理 数据库查询语句如何执行&#xff1f; DML语句首先进行语法分析&#xff0c;对使用sql表示的查询进行语法分析&#xff0c;生成查询语法分析树。语义检查&#xff1a;检查sql中所涉及的对象以及是否在数据库中存在&#xff0c;用户是否具有操作权限等视…...

可视化探索开源项目的 contributor 关系

引语&#xff1a;作为国内外最大的代码托管平台&#xff0c;根据最新的 GitHub 数据&#xff0c;它拥有超 372,000,000 个仓库&#xff0c;其中有 28,000,000 是公开仓。分布式图数据库 NebulaGraph 便是其中之一&#xff0c;同其他开源项目一样&#xff0c;NebulaGrpah 也有自…...

SpringBoot 实现启动项目后立即执行方法的几种方式

在项目开发中某些场景必须要用到启动项目后立即执行方式的功能&#xff0c;如我们需要去初始化数据到redis缓存&#xff0c;或者启动后读取相应的字典配置等&#xff0c;这篇文章主要聊聊实现立即执行的几种方法。 一、CommandLineRunner和ApplicationRunner 这两者的实现方法…...

2021第十二届蓝桥杯Python组国赛【真题+解析+代码】

&#x1f381;2021第十二届蓝桥杯python组国赛真题 &#x1f680; 真题练习&#xff0c;冲刺国赛 &#x1f680; 2021第十二届蓝桥杯python组国赛真题解析代码 博观而约取&#xff0c;厚积而薄发 &#x1f3c6;国赛真题目录 文章目录 &#x1f381;2021第十二届蓝桥杯python组国…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...