我们一般处理的数据,都是样本数量远大于其特征数量,可用很多种回归方法;但当特征数量远大于样本量时,可能会因为出现无数多个完美解导致过拟合现象,也使得在计算时搜索最有特征子集的方法不再可行(因为计算量过大)。鉴于此,我们可以使用高维回归,该方法会对很多特征的系数做出限制,一是增加惩罚项,许多特征的系数为0,减少算法的计算量;二是用主成分回归的办法,先对数据进行降维,将特征限定在有限的范围内再去做回归。

以下是一个例子:

# 加载必要的包
library(glmnet)  # 用于Lasso回归
library(ggplot2) # 用于可视化# 生成高维数据集
set.seed(123)
n <- 100   # 样本量
p <- 200   # 变量数(远大于n)# 生成设计矩阵X(100×200)
X <- matrix(rnorm(n * p), nrow = n, ncol = p)# 生成真实的系数向量(只有前5个变量有真实效应)
true_beta <- c(rep(3, 5), rep(0, p-5))# 生成响应变量 y = Xβ + ε
y <- X %*% true_beta + rnorm(n, sd = 2)# 将数据分为训练集和测试集
train <- sample(1:n, 70)
X_train <- X[train, ]
y_train <- y[train]
X_test <- X[-train, ]
y_test <- y[-train]# 使用交叉验证拟合Lasso模型
cv_fit <- cv.glmnet(X_train, y_train, alpha = 1)  # alpha=1表示Lasso# 查看最优lambda值
best_lambda <- cv_fit$lambda.min
cat("最优lambda值:", best_lambda, "\n")# 绘制交叉验证误差
plot(cv_fit)# 使用最优lambda拟合最终模型
final_model <- glmnet(X_train, y_train, alpha = 1, lambda = best_lambda)# 查看非零系数的变量
selected_vars <- predict(final_model, type = "coefficients")
cat("选择的变量数量:", sum(selected_vars != 0) - 1, "\n")  # 减去截距# 预测测试集
predictions <- predict(final_model, newx = X_test)# 计算测试集MSE
mse <- mean((predictions - y_test)^2)
cat("测试集MSE:", mse, "\n")# 可视化真实系数与估计系数
coef_df <- data.frame(Variable = 1:p,True = true_beta,Estimated = as.numeric(selected_vars[-1])  # 去掉截距
)ggplot(coef_df, aes(x = Variable)) +geom_point(aes(y = True, color = "真实值")) +geom_point(aes(y = Estimated, color = "估计值")) +scale_color_manual(values = c("真实值" = "red", "估计值" = "blue")) +labs(title = "真实系数与Lasso估计系数比较",y = "系数值",color = "类型") +theme_minimal()

输出:

最优lambda值: 0.141299
选择的变量数量: 45 
测试集MSE: 6.238843

我的结果表明,有45个变量是有效的,但所画的图则表明只有前五个变量是有效的,其他变量的系数都是0,造成这个原因很可能是因为lambda不够大(惩罚值较小),所以才让模型引入了40个无关变量。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

响应式数据的判断:Vue3中的方法

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

[论文阅读] 人工智能+软件工程 | 用大语言模型架起软件需求形式化的桥梁

用大语言模型架起软件需求形式化的桥梁&#xff1a;一篇ACM调查草案的深度解读 论文信息 arXiv:2506.14627 ACM Survey Draft on Formalising Software Requirements with Large Language Models Arshad Beg, Diarmuid O’Donoghue, Rosemary Monahan Comments: 22 pages. 6 s…

DM8故障分析工具-AWR报告

在数据库运维过程中&#xff0c;大家都会利用数据库提供的各种工具来找到数据库存在的问题&#xff0c;以便对症实施配置优化&#xff0c;我是因工作需要&#xff0c;最近开始了解达梦数据库DM8的故障分析工具&#xff0c;这里发现AWR报告是一款不错的自带工具&#xff0c;故而…

《企业司法风险监控系统架构设计:从数据采集到T+1实时预警的完整解决方案》

本文深入探讨了天远大数据在构建企业级司法风险监控平台和风险报告查询系统方面的技术实现与业务应用。平台依托权威、合法的司法数据源&#xff0c;通过实时数据处理与智能分析&#xff0c;为金融、供应链、人力资源等领域提供精准、及时的司法预警和决策支持。它通过灵活的多…

使用ccs生成bin

CCS12.6 编译生成BIN文件正确方法_ccs生成bin文件-CSDN博客

Kafka网络模块全链路源码深度剖析与设计哲学解读

在分布式消息系统的竞技场上&#xff0c;Kafka凭借卓越的高性能与高吞吐量脱颖而出&#xff0c;而其网络模块正是支撑这一卓越表现的核心引擎。从生产者将消息送入消息队列&#xff0c;到消费者从中拉取消息&#xff0c;Kafka网络模块贯穿消息流转的每个环节。本文不仅深入Kafk…

华为开发者大会6月20日举行

华为开发者大会2025&#xff08;HDC 2025&#xff09;将于6月20日至22日在深圳松山湖举办。 目前&#xff0c;华为开发者大会2025的详细日程已经公布&#xff0c;华为终端BG董事长余承东、华为终端BG首席执行官何刚、华为终端BG软件部总裁龚体等华为高管将出席并发表主题演讲&a…

`provide` 和 `inject` 组件通讯:实现跨组件层级通讯

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

MCP入门实战(Python版)

MCP介绍 MCP入门介绍 MCP 简介 - MCP 中文文档 MCP&#xff0c;全称是Model Context Protocol&#xff0c;模型上下文协议&#xff0c;由Claude母公司Anthropic于2024年11月正式提出。 从本质上来说&#xff0c;MCP是一种技术协议&#xff0c;一种智能体Agent开发过程中共同…

1、自然语言处理任务全流程

自然语言处理黄金九步法&#xff0c;葵花宝典&#xff0c;请珍藏心间 目录 需求分析&#xff1a;问题定义 1.文本分类任务 2.序列标注任务 3.文本生成任务 4.文本理解任务 5.信息抽取任务 6.文本匹配任务 7.多模态任务 一、数据获取 1、发现可用数据集 2、常用的数…

可编程密码学(Part 1)

1. 引言 当前密码学正处于一次代际转变之中&#xff0c;从special-purpose cryptography专用密码学过渡到programmable cryptography可编程密码学。 1&#xff09;所谓“专用密码学”&#xff0c;指的是那些只能执行单个操作且具有密码学安全保证的协议。 公钥加密和签名方案…

Linux运维新人自用笔记(Ubuntu磁盘命名规则、新磁盘分区、主流文件系统类型、mkfs命令格式化文件系统、临时和永久挂载、挂载报错、dd指令)

内容全为个人理解和自查资料梳理&#xff0c;欢迎各位大神指点&#xff01; 每天学习较为零散。 day21 一、磁盘维护流程 新硬盘&#xff08;虚拟机可添加&#xff09; 新硬盘需要做lvm管理 数据库迁移&#xff08;夜间网站停机维护&#xff09;&#xff1a; 停止数据库监…

腾讯云轻量级服务器Ubuntu系统与可视化界面

以云服务器的方式搭建Linux workstation对比在电脑本地安装虚拟机的优势在于&#xff0c;不需要占用本地电脑资源空间&#xff0c;网络环境等相对稳定&#xff0c;可以用手机等轻量移动设备连接管理等。本文主要介绍使用腾讯云服务器&#xff0c;搭建Ubuntu Linux系统以及可视化…

如何在MacOS系统和Windows系统安装节点小宝远程工具

如何在MacOS系统和Windows系统安装节点小宝远程工具 摘要 本文讲述如何在MacOS系统和Windows系统安装节点小宝远程工具&#xff0c;并详细介绍了配置和使用远程控制的步骤。无论是在个人电脑还是手机、平板设备之间的远程连接&#xff0c;您都可以通过本教程轻松实现。 文章…

60天python训练营打卡day38

学习目标&#xff1a; 60天python训练营打卡 学习内容&#xff1a; DAY 38 Dataset和Dataloader类 知识点回顾&#xff1a; 1.Dataset类的__getitem__和__len__方法&#xff08;本质是python的特殊方法&#xff09; 2.Dataloader类 3.minist手写数据集的了解 作业&#xff1a…

Python 邻接表详细实现指南

邻接表是图数据结构的一种高效表示方法&#xff0c;特别适合表示稀疏图。下面我将用 Python 详细讲解邻接表的多种实现方式、操作方法和实际应用。 一、邻接表基础概念 邻接表的核心思想是为图中的每个顶点维护一个列表&#xff0c;存储与该顶点直接相连的所有邻接顶点。 邻…

Nginx反向代理解决跨域问题详解

Nginx反向代理解决跨域问题详解 核心原理 Nginx反向代理解决跨域的核心思路是让客户端请求同域名下的接口&#xff0c;由Nginx将请求转发到目标服务器&#xff0c;从而规避浏览器的同源策略限制。 客户端&#xff08;同源&#xff1a;www.domain.com&#xff09;↓Nginx&…

单片机测ntc热敏电阻的几种方法

在单片机中测量NTC&#xff08;负温度系数&#xff09;热敏电阻的阻值&#xff0c;通常需要将其转换为电压或频率信号&#xff0c;再通过单片机进行采集和处理。以下是几种常见的方法及其详细说明&#xff1a; 1. 分压法&#xff08;最常用&#xff09;​​ ​​原理​​&…

一套基于粒子群优化(PSO)算法的天线波束扫描MATLAB实现方案

以下是一套基于粒子群优化(PSO)算法的天线波束扫描MATLAB实现方案,包含完整代码、数学原理和详细注释。该方案针对均匀线性阵列(ULA)的波束方向图优化,通过调整阵元相位实现主瓣指向目标方向并抑制旁瓣。 %% 天线波束扫描的PSO算法实现 % 作者:DeepSeek % 创建日期:20…

增量学习ASAP的源码剖析:如何实现人形的运动追踪和全身控制(核心涉及HumanoidVerse中的agents模块)

前言 过去一周&#xff0c;我司「七月在线」长沙分部的具身团队在机械臂和人形上并行发力 关于机械臂 一方面&#xff0c;在IL和VLA的路线下&#xff0c;先后采集了抓杯子、桌面收纳、插入耳机孔的数据&#xff0c;然后云端训-本地5090推理 二方面&#xff0c;在RL的路线下&a…