岭回归(概念+实例)

news2025/1/13 17:29:29

目录

前言

一、基本概念

1. 引言

2. 岭回归的原理

3. 数学表达式

4. 岭回归的优点

5. 岭回归的局限性

6. 实际应用

二、具体实例


前言

“岭回归”这个词源于英文“Ridge Regression”,是一种用于处理回归分析中多重共线性(multicollinearity)问题的统计方法。在传统的最小二乘回归(Ordinary Least Squares,OLS)中,当自变量之间存在高度相关性时,会导致回归系数估计的不稳定性和偏误。岭回归通过对回归系数的估计进行调整,有效地解决了这一问题。

一、基本概念

1. 引言

在回归分析中,最小二乘法(OLS)是最常见的估计方法之一,用于估计自变量与因变量之间的关系。然而,在实际应用中,自变量之间往往存在着一定程度的相关性,即多重共线性问题。多重共线性会导致OLS估计出的回归系数不稳定,难以准确解释和预测。为了解决这一问题,岭回归作为一种正则化方法被提出,并在实践中得到广泛应用。

2. 岭回归的原理

岭回归的核心思想是在OLS的基础上引入一个正则化项,通过对回归系数进行调整来解决多重共线性问题。正则化项是一个惩罚项,它能够约束回归系数的大小,降低模型的复杂度,防止过拟合。

3. 数学表达式

4. 岭回归的优点

  • 解决多重共线性问题:岭回归能够有效地处理自变量之间存在高度相关性的情况,提高回归系数估计的稳定性。
  • 控制过拟合:通过引入正则化项,岭回归可以降低模型的复杂度,减少过拟合的风险。
  • 灵活性:岭回归的岭参数可以根据实际情况进行调整,使模型更加灵活适用于不同的数据集和问题。

5. 岭回归的局限性

  • 岭参数的选择:选择合适的岭参数需要一定的经验和技巧,过大或过小的岭参数都可能导致不良的结果。
  • 系数解释性:由于岭回归对回归系数进行了调整,因此解释岭回归模型的系数可能相对复杂。

6. 实际应用

  • 与交叉验证等方法结合使用:通常通过交叉验证等方法来选择最佳的岭参数,以及评估模型的性能。
  • 在机器学习中的应用:岭回归的思想被推广到其他机器学习算法中,如岭分类和岭主成分分析,以解决不同领域中的相关问题。

二、具体实例

这段代码实现了以下功能:

  1. 创建了一个具有10个特征的示例数据集,其中包含100个样本。
  2. 将数据集划分为训练集和测试集,其中80%的数据用于训练,20%用于测试。
  3. 使用scikit-learn库中的Ridge类定义了岭回归模型,并指定了岭参数(alpha)为1.0。
  4. 在训练集上训练了岭回归模型。
  5. 在测试集上进行了预测,并计算了预测结果与真实值之间的均方误差(MSE)。
  6. 最后,绘制了预测值与真实值的对比图,以直观地展示模型的性能。

代码:

# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 创建示例数据集
np.random.seed(0)
X = np.random.rand(100, 10)  # 100个样本,10个特征
y = 2 * X[:, 0] + 3 * X[:, 1] + np.random.randn(100)  # 构造线性关系,并添加噪声

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 定义岭回归模型
ridge = Ridge(alpha=1.0)  # alpha为岭参数,默认为1.0

# 在训练集上训练模型
ridge.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = ridge.predict(X_test)

# 计算均方误差(MSE)作为性能评估指标
mse = mean_squared_error(y_test, y_pred)
print("岭回归模型的均方误差为:", mse)

# 绘制预测值与真实值的对比图
plt.figure(figsize=(8, 6))
plt.scatter(y_test, y_pred, color='blue')
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], linestyle='--', color='red')
plt.xlabel('True Values')
plt.ylabel('Predictions')
plt.title('True vs. Predicted Values (Ridge Regression)')
plt.show()

结果:

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

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

相关文章

java-spring-mybatis -学习第一天-基础知识讲解

目录 前置条件(创建一个项目) Mybatis 定义 可能出现的问题 这边如果连接不上数据库 ​编辑 Dao接口设计 Mybatis流程 创建实体类 User 和其属性 创建Mapper的接口类 测试类测试 实例数据库数据的更新 实例数据库数值的删除 最重要的是有一个原始的数据库 -我这边…

传统行业还在使用FTP传输?试试这套FTP替代传输解决方案!

在数字化转型的浪潮中,传统企业对文件传输的需求日益增长。然而,许多企业仍在使用传统的文件传输协议(FTP)来处理文件传输任务。尽管FTP在早期被广泛采用,但其固有的弊端逐渐成为企业发展的桎梏,所以找一个…

SQL中的锁

一、概述 介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资(CPU、RAM、I/0)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲…

大模型 AI 框架昇思 MindSpore 2.3.RC1 发布,训练、推理性能大幅提升,JIT 编译强化

经过社区开发者们几个月的开发与贡献,现正式发布昇思 MindSpore2.3.RC1 版本,通过多维混合并行以及确定性 CKPT 来实现超大集群的高性能训练,支持大模型训推一体架构,大模型开发训练推理更简、更稳、更高效,并在训推一…

【CMU15-445 Part-19】Multi-Version Concurrency Control

Part19-Multi-Version Concurrency Control 其实说到底 MVCC不仅是一种并发控制协议,更是一个系统构建(数据组织的方法)。 简介 writer 不会 block readers,reader 也不会 block writers。只读事务可以读到一个consistent的sna…

nlp 自然语言处理的dataset数据库积累

下面的这个和 entity recognition有关的。 Weights & Biases

光伏无人机巡检主要有些什么功能和特点?

随着科技的飞速发展,无人机技术已经渗透到多个行业领域,光伏产业便是其中之一。光伏无人机巡检,作为一种新兴的巡检方式,正在逐渐取代传统的人工巡检,为光伏电站的安全、高效运行提供了有力保障。那么,光伏…

10:00面试,10:08就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

“我也想和月牙一样,把不满写在脸上”

贪吃蛇的初级实现 1. Win32 API介绍1.1 Win32 API1.2 控制台程序1.3 控制台屏幕上的坐标COORD1.4 GetStdHandle1.5 GetConsoleCursorInfo1.5.1 CONSOLE_CURSOR_INFO 1.6 SetConsoleCursorInfo1.7 SetConsoleCursorPosition1.8 GetAsyncKeyState 2. 贪吃蛇游戏设计与分析2.1 地图…

使用Shell终端访问Linux

一、实验目的 1、熟悉Linux文件系统访问命令; 2、熟悉常用 Linux Shell的命令; 3、熟悉在Linux文件系统中vi编辑器的使用; 4、进一步熟悉虚拟机网络连接模式与参数配置! 二、实验内容 1、使用root帐号登陆到Linux的X-windows…

2024年了,还有必要搭建企业网站吗?

现在企业的营销手段五花八门。当下火爆的短视频直播平台展现出的裂变效应也取得不错的成绩,这不禁让很多企业舍弃做网站的念头,投入自媒体账号。那么,2024年了,还有必要搭建企业网站吗? 我们分两种企业来看&#xff1…

【11-Ⅱ】Head First Java 学习笔记

HeadFirst Java 本人有C语言基础,通过阅读Java廖雪峰网站,简单速成了java,但对其中一些入门概念有所疏漏,阅读本书以弥补。 第一章 Java入门 第二章 面向对象 第三章 变量 第四章 方法操作实例变量 第五章 程序实战 第六章 Java…

3d软件哪个适合新手学?3D动画渲染怎么好

在不同的行业领域,3D建模和动画的需求各异,因此所需的3D软件工具也会有所不同。对于刚开始接触3D设计的新手来说,软件的易操作性、丰富的学习资源以及与自己专业领域相关的功能是选择时的重要考虑因素。以下是几款适合初学者入门的3D软件推荐…

【第3节】“茴香豆“:搭建你的 RAG 智能助理

目录 1 基础知识1.1.RAG技术的概述1.2 RAG的基本结构有哪些呢?1.3 RAG 工作原理:1.4 向量数据库(Vector-DB ):1.5 RAG常见优化方法1.6RAG技术vs微调技术 2、茴香豆介绍2.1应用场景2.2 场景难点2.3 茴香豆的构建: 3 论文快读4 实践…

OpenHarmony网络协议通信—libevent [GN编译] - 事件通知库

libevent主要是用C语言实现了事件通知的功能 下载安装 直接在OpenHarmony-SIG仓中搜索libevent并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 库代码存放路径:./third_party/libevent 修改添加依赖的编译脚本 在/developtools/bytrace_standard/…

java反序列化之URLDNS链学习

一、前言 近来学习java反序列化,听p神所说这个URLDNS利用链比较好理解,故决定由此进入学习的第一篇。 URLDNS是Java反序列化中比较简单的一个链,由于URLDNS不需要依赖第三方的包,同时不限制jdk的版本,所以通常用于检…

【SpringBoot整合系列】SpringBoot整合Mybatis

目录 前期回顾MyBatis简介特点 持久化(Persistence)什么是持久化 ORM(Object Relational Mapping)ORM解决方案包含下面四个部分ORM解决方案经典面试题:MyBatis与Hibernate区别 Springboot整合MyBatis1.新建工程&#x…

记录一下线上卡夫卡rebalanced的原因

记录一下线上卡夫卡rebalanced的原因,以及排查过程,我们线上使用的版本是0.10.1.1,rebalanced就是重平衡,触发重平衡的原因如下: 消费者组内成员发生变更,这个变更包括了增加和减少消费者。注意这里的减少有…

UI自动化测试框架:PO 模式+数据驱动(超详细)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、PO 设计模式简介 什么是 PO 模式? PO&#xff…

vue2实现字节流byte[]数组的图片预览

项目使用vantui框架&#xff0c;后端返回图片的字节流byte[]数组&#xff0c;在移动端实现预览&#xff0c;实现代码如下&#xff1a; <template><!-- 附件预览 --><div class"file-preview-wrap"><van-overlay :show"show"><…