【漫话机器学习系列】082.岭回归(或脊回归)中的α值(alpha in ridge regression)

news2025/2/11 9:49:36

岭回归(Ridge Regression)中的 α 值

岭回归(Ridge Regression)是一种 带有 L2​ 正则化 的线性回归方法,用于处理多重共线性(Multicollinearity)问题,提高模型的泛化能力。其中,α 值(正则化强度) 是岭回归的关键超参数,它决定了正则化项的权重。


1. 岭回归的损失函数

岭回归的目标是在最小化均方误差(MSE)的基础上,引入 L2​ 正则化,以防止过拟合。其损失函数(目标函数)如下:

其中:

  • 是普通最小二乘回归(OLS)的损失项(残差平方和,RSS)。
  • ​ 是正则化项(L2 惩罚项),防止回归系数 β 过大。
  • α 是超参数,控制正则化强度:
    • α = 0:岭回归退化为普通最小二乘回归(OLS)。
    • :所有回归系数趋近于零,模型趋向于最简单(偏置高,方差低)。

2. α 值的影响

α 值的大小直接影响岭回归模型的性能:

α 值影响
α = 0退化为普通最小二乘(OLS),没有正则化,容易过拟合。
小 α保留大部分特征的贡献,轻微减少过拟合。
较大 α增强正则化,减少系数的大小,降低方差但可能增大偏差。
α → ∞所有系数趋近于 0,模型变得过于简单,可能欠拟合。

一般来说,α 值需要通过 交叉验证(Cross-Validation) 来选择,使得模型在训练集和测试集上都能表现良好。


3. 岭回归的矩阵形式

岭回归的最优解可以通过闭式解公式求得:

其中:

  • X 是输入特征矩阵,
  • y 是目标变量,
  • I 是单位矩阵,
  • α 控制正则化强度。

相比普通最小二乘回归的解:

岭回归通过在 矩阵上加上 使其可逆,从而避免多重共线性问题。


4. α 值的选择(超参数调优)

通常,我们可以通过 交叉验证(Cross Validation) 选择最优 α 值:

方法 1:手动搜索

尝试多个 α 值,计算交叉验证误差(如 MSE),选择最优 α。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import Ridge
from sklearn.model_selection import cross_val_score

# 生成模拟数据
np.random.seed(42)
X = np.random.rand(100, 5)
y = X.dot(np.array([1.5, -2, 3, 0, 4])) + np.random.randn(100) * 0.5

# 选择不同的 α 值
alpha_values = np.logspace(-4, 2, 50)
cv_scores = [np.mean(cross_val_score(Ridge(alpha=a), X, y, cv=5, scoring='neg_mean_squared_error'))
             for a in alpha_values]

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']

# 画出 α 与误差的关系
plt.plot(alpha_values, -np.array(cv_scores), marker='o')
plt.xscale('log')
plt.xlabel("Alpha")
plt.ylabel("Negative MSE")
plt.title("选择最佳 Alpha")
plt.show()

方法 2:使用 GridSearchCV 自动搜索

import numpy as np
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV

# 生成模拟数据
np.random.seed(42)
X = np.random.rand(100, 5)
y = X.dot(np.array([1.5, -2, 3, 0, 4])) + np.random.randn(100) * 0.5

ridge = Ridge()
param_grid = {'alpha': np.logspace(-4, 2, 50)}
grid = GridSearchCV(ridge, param_grid, cv=5, scoring='neg_mean_squared_error')
grid.fit(X, y)

print("最佳 Alpha 值:", grid.best_params_['alpha'])

运行结果

最佳 Alpha 值: 0.028117686979742307

5. α 值与 Lasso 的对比

  • 岭回归(Ridge) 采用 L2 正则化,会使系数变小但不会变成 0(适合高维但重要特征较多的情况)。
  • Lasso 回归(Lasso) 采用 L1 正则化,可以使某些系数完全变为 0,从而实现特征选择。

6. 总结

  • α 是岭回归中的正则化参数,控制模型的复杂度和泛化能力。
  • α 过小,模型容易过拟合;α 过大,模型容易欠拟合。
  • 可以使用交叉验证选择最优 α 值,以获得最佳的泛化能力。
  • 岭回归适用于多重共线性数据,可防止回归系数过大,提高模型的稳定性。

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

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

相关文章

9 Pydantic复杂数据结构的处理

在构建现代 Web 应用时,我们往往需要处理复杂的输入和输出数据结构。例如,响应数据可能包含嵌套字典、列表、元组,甚至是多个嵌套对象。Pydantic 是一个强大的数据验证和序列化库,可以帮助我们轻松地处理这些复杂的数据结构&#…

Day62_补20250210_图论part6_108冗余连接|109.冗余连接II

Day62_20250210_图论part6_108冗余连接|109.冗余连接II 108冗余连接 【把题意转化为并查集问题】 题目 有一个图,它是一棵树,他是拥有 n 个节点(节点编号1到n)和 n - 1 条边的连通无环无向图(其实就是一个线形图&am…

kafka消费端之消费者协调器和组协调器

文章目录 概述回顾历史老版本获取消费者变更老版本存在的问题 消费者协调器和组协调器新版如何解决老版本问题再均衡过程**第一阶段CFIND COORDINATOR****第二阶段(JOINGROUP)**选举消费组的lcader选举分区分配策略 第三阶段(SYNC GROUP&…

IDEA升级出现问题Failed to prepare an update Temp directory inside installation

IDEA升级出现问题"Failed to prepare an update Temp directory inside installation…" 问题来源: 之前修改了IDEA的默认配置文件路径,然后升级新版本时就无法升级,提示"Failed to prepare an update Temp directory insid…

十款开源的论坛建站工具

以下是十款开源的论坛建站工具,它们各具特色,能够满足不同用户的需求: Discuz!(Crossday Discuz! Board) 特点:基础架构采用web编程组合PHPMySQL,用户可以在不需要任何编程的基础上,…

vue学习6

1. 智慧商城 1. 路由设计配置 单个页面&#xff0c;独立展示的&#xff0c;是一级路由 2.二级路由配置 规则&组件配置导航链接配置路由出口 <template><div id"app"><!--二级路由出口--><router-view></router-view><van-…

线程池以及日志、线程总结

一、线程池以及日志 1、基础线程池写法 主线程在main函数中构建一个线程池&#xff0c;初始化(Init)后开始工作(Start) 此时线程池中每个线程都已经工作起来了&#xff0c;只是任务队列中任务为空&#xff0c;所有线程处于休眠状态(通过线程同步中的条件变量实现&#xff0c…

Vue 响应式渲染 - 过滤应用

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue响应式渲染综合 - 过滤应用 目录 过滤应用 引入vue Vue设置 设置页面元素 模糊查询过滤实现 函数表达式实现 总结 过滤应用 综合响应式渲染做一个输入框&#xff0c;用来实现&#xff1b;搜索输入框关键词符合列表。…

【ThreeJS Basics 1-3】Hello ThreeJS,实现第一个场景

文章目录 环境创建一个项目安装依赖基础 Web 页面概念解释编写代码运行项目 环境 我的环境是 node version 22 创建一个项目 首先&#xff0c;新建一个空的文件夹&#xff0c;然后 npm init -y , 此时会快速生成好默认的 package.json 安装依赖 在新建的项目下用 npm 安装依…

深入理解动态代理

为什么需要动态代理 对于代码的增强逻辑我们是清楚具体实现的,一种方式是增强逻辑作为委托类,被其他业务类调用, 这样会有很多重复代码,而且,当需要根据动态参数来决定增强逻辑时,重复代码会更多,逻辑会更不清晰 二,也是动态代理产生的原始需求,解决类爆照问题, 所以…

Cherry Studio之DeepSeek联网/本地,建属于自己的AI助理!

上一篇文章&#xff0c;讲了DeepSeek-R1部署到本地的方法。这一篇文章&#xff0c;我们让DeepSeek再一次升级&#xff0c;通过图形化界面来交互&#xff0c;从而变成我们的AI助理&#xff0c;让DeepSeek R1发挥最大实力&#xff01; 首选需要借助硅基流动的API接口&#xff0c…

IGBT的两级关断

IGBT&#xff08;绝缘栅双极型晶体管&#xff09;的两级关断&#xff08;Two-stage turn-off&#xff09;是一种优化关断过程的方法&#xff0c;主要用于减少关断时的电压过冲和dv/dt&#xff08;电压变化率&#xff09;过高的问题&#xff0c;特别是在大功率应用中&#xff08…

【STM32】ADC

本次实现的是ADC实现数字信号与模拟信号的转化&#xff0c;数字信号时不连续的&#xff0c;模拟信号是连续的。 1.ADC转化的原理 模拟-数字转换技术使用的是逐次逼近法&#xff0c;使用二分比较的方法来确定电压值 当单片机对应的参考电压为3.3v时&#xff0c;0~ 3.3v(模拟信号…

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 0基础…

Chapter3:结构化程序设计

参考书籍&#xff1a;《C#边做边学》&#xff1b; 3.结构化程序设计 3.1 结构化程序设计的3种基本结构 顺序结构&#xff1a;先执行 A {\rm A} A语句&#xff0c;再执行 B {\rm B} B语句&#xff0c;两者是顺序执行的关系&#xff1b; 选择结构&#xff1a;根据所定选择条件为…

白话文实战Nacos(保姆级教程)

前言 上一篇博客 我们创建好了微服务项目,本篇博客来体验一下Nacos作为注册中心和配置中心的功能。 注册中心 如果我们启动了一个Nacos注册中心,那么微服务比如订单服务,启动后就可以连上注册中心把自己注册上去,这过程就是服务注册。每个微服务,比如商品服务都应该注册…

智能理解 PPT 内容,快速生成讲解视频

当我们想根据一版 PPT 制作出相对应的解锁视频时&#xff0c;从撰写解锁词&#xff0c;录制音频到剪辑视频&#xff0c;每一个环节都需要投入大量的时间和精力&#xff0c;本方案将依托于阿里云函数计算 FC 和百炼模型服务&#xff0c;实现从 PPT 到视频的全自动转换&#xff0…

IEC61850标准下的数据和数据模型服务的详细介绍

目录 一、摘要 二、概述 三、详细介绍 1、读服务器目录(GetServerDirectory) 2、读逻辑设备目录(GetLogicalDeviceDirectory) 3、读逻辑节点目录(GetLogicalNodeDirectory) 4、读全部数据值(GetAllDataValues) 5、读数据值(GetDataValues) 6、设置数据值(SetDataValues…

R语言LCMM多维度潜在类别模型流行病学研究:LCA、MM方法分析纵向数据

全文代码数据&#xff1a;https://tecdat.cn/?p39710 在数据分析领域&#xff0c;当我们面对一组数据时&#xff0c;通常会有已知的分组情况&#xff0c;比如不同的治疗组、性别组或种族组等&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 然而&#xff0c;…

5. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Nacos

一、什么是Nacos Nacos 是阿里巴巴开源的一款云原生应用基础设施&#xff0c;它旨在简化微服务架构中服务治理和配置管理的复杂性。通过 Nacos&#xff0c;服务在启动时可以自动注册&#xff0c;而其他服务则可以通过名称来查找并访问这些注册好的实例。同时&#xff0c;Nacos…