岭回归有看点:正则化参数解密,显著性不再成问题!
一、概述
「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")
可以看到,这个预测结果和实际结果相差还是不大的,几乎在线的左右,有一定的预测价值。
四、总结
岭回归在实际应用中,常用于以下场景:
-
「数据预处理」:在数据预处理阶段,可以使用岭回归来解决多重共线性问题,提高模型的稳定性和效果。
-
「特征选择」:岭回归可以用于特征选择,通过调整正则化参数,可以控制模型系数的大小,对无关自变量的系数进行惩罚,进而筛选出对模型解释力度高的重要特征。
-
「预测建模」:岭回归也可以用于预测建模,通过适当地调整正则化参数可以控制模型的复杂度,同时避免过拟合问题,提高模型的泛化能力。
总之,岭回归是一个广泛应用于回归问题的经典模型,具有良好的解释性和稳定性,是数据科学和机器学习领域中必不可少的工具之一。
末尾,我们提一个问题哈,lambda这个值怎么选比较合理?采用什么算法来选择?如果有想了解的,欢迎关注和私信我。
相关文章:
岭回归有看点:正则化参数解密,显著性不再成问题!
一、概述 「L2正则化(也称为岭回归)」 是一种用于线性回归模型的正则化方法,它通过在模型的损失函数中添加一个惩罚项来防止过拟合。L2正则化的惩罚项是模型参数的平方和,乘以一个正则化参数λ,即: 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 协议,…...
python中的常见运算符
文章目录 算数运算符赋值运算关系运算符逻辑运算符非布尔值的与或非运算条件运算符(也叫三元运算符)运算符的优先级 算数运算符 加法运算符(如果两个字符串之间进行加法运算,则会进行拼串操作) - 减法运算符 * 乘法运算符(如果将字…...
TypeScript类型
TypeScript 是什么? 是以avaScript为基础构建的语言个一JavaScript的超集。可以在任何支持JavaScript的平台中执行。TypeScript扩展了JavaScript,并添加了类型。TS不能被JS解析器直接执行,需要编译成js。 基本类型 声明完变量直赴进行赋值 let c: boo…...
Integer源码
介绍 Integer是int类型的包装类,继承自Number抽象类,实现了Comparable接口。提供了一些处理int类型的方法,比如int到String类型的转换方法或String类型到int类型的转换方法,当然也包含与其他类型之间的转换方法。 Comparable提供…...
【四】设计模式~~~创建型模式~~~建造者模式(Java)
【学习难度:★★★★☆,使用频率:★★☆☆☆】 4.1. 模式动机 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件…...
MarkDown的基本使用方法
为了给官方的文档知识总结:Markdown 基本语法 | Markdown 官方教程 #空格内容:‘#’表示标题的等级,越少表示标题级别越高(字越大) 在一行的末尾加两个或多个空格再回车,就是我们普通的文本回车。【还有一…...
IDEA 安装配置步骤详解
引言 IntelliJ IDEA 是一款功能强大的集成开发环境,它具有许多优势,适用于各种开发过程。本文将介绍 IDEA 的主要优势,并提供详细的安装配置步骤。 介绍 IntelliJ IDEA(以下简称 IDEA)之所以被广泛使用,…...
【网络】· 路由器中配置单臂路由和DHCP,VTP原理
目录 🍉单臂路由的工作原理 🥝交换机配置 🥝路由器配置 🍉路由器配置DHCP 🥝配置实例 🥝路由器配置 🥝验证 🍉VTP工作原理 🥝VTP模式 🥝VTP通告 🥝…...
Python 子域名扫描工具:使用多线程优化
部分数据来源:ChatGPT 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 摘要:子域名扫描是一个重要的安全工作,它可以发现目标网站的更多威胁和漏洞。本文介绍了如何使用 Python 来编写一…...
宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问
文章目录 1.前言2.网站搭建2.1. 网页下载和安装2.2.网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测试5.结语 转发自cpolar极点云的…...
深入理解设计原则之单一职责原则(SRP)
系列文章目录 C高性能优化编程系列 深入理解设计原则系列 深入理解设计模式系列 高级C并发线程编程 SRP:单一职责原则 系列文章目录1、单一职责原则的定义和解读2、单一职责原则案例解读2.1、违背单一职责原则反面案例2.2、违背单一职责原则反面案例 - 解决方案 3…...
钉钉群通过短信转发器接收手机短信消息
1.短信转发器官网下载 下载地址 首发地址:https://github.com/pppscn/SmsForwarder/releases国内镜像:https://gitee.com/pp/SmsForwarder/releases网盘下载:https://wws.lanzoui.com/b025yl86h 访问密码:pppscn 使用文档 首发…...
【C++模版】模版进阶 {非类型模版参数; 模版的特化; 模版的分离编译; 模版总结}
一、非类型模版参数 模板参数分类型形参与非类型形参。 类型形参:出现在模板参数列表中,跟在class或者typename之后的参数类型名称。非类型形参:就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来…...
Azure Active Directory 的功能和优势
Azure Active Directory (Azure AD) 是 Microsoft 基于云的多租户目录和标识管理服务。 Azure AD 有助于支持用户访问资源和应用程序,例如: 位于企业网络上的内部资源和应用。 Microsoft 365、Azure 门户和 SaaS 应用程序等外部资源。 为组织开发的云应…...
mysql查询语句执行过程及运行原理命令
Mysql查询语句执行原理 数据库查询语句如何执行? DML语句首先进行语法分析,对使用sql表示的查询进行语法分析,生成查询语法分析树。语义检查:检查sql中所涉及的对象以及是否在数据库中存在,用户是否具有操作权限等视…...
可视化探索开源项目的 contributor 关系
引语:作为国内外最大的代码托管平台,根据最新的 GitHub 数据,它拥有超 372,000,000 个仓库,其中有 28,000,000 是公开仓。分布式图数据库 NebulaGraph 便是其中之一,同其他开源项目一样,NebulaGrpah 也有自…...
SpringBoot 实现启动项目后立即执行方法的几种方式
在项目开发中某些场景必须要用到启动项目后立即执行方式的功能,如我们需要去初始化数据到redis缓存,或者启动后读取相应的字典配置等,这篇文章主要聊聊实现立即执行的几种方法。 一、CommandLineRunner和ApplicationRunner 这两者的实现方法…...
2021第十二届蓝桥杯Python组国赛【真题+解析+代码】
🎁2021第十二届蓝桥杯python组国赛真题 🚀 真题练习,冲刺国赛 🚀 2021第十二届蓝桥杯python组国赛真题解析代码 博观而约取,厚积而薄发 🏆国赛真题目录 文章目录 🎁2021第十二届蓝桥杯python组国…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
