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

岭回归(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.5ridge = 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.mzph.cn/bicheng/70338.shtml

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

相关文章

websocket自动重连封装

websocket自动重连封装 前端代码封装 import { ref, onUnmounted } from vue;interface WebSocketOptions {url: string;protocols?: string | string[];reconnectTimeout?: number; }class WebSocketService {private ws: WebSocket | null null;private callbacks: { [k…

【华为OD-E卷 - 115 数组组成的最小数字 100分(python、java、c++、js、c)】

【华为OD-E卷 - 数组组成的最小数字 100分(python、java、c、js、c)】 题目 给定一个整型数组,请从该数组中选择3个元素组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字) 输…

在Vue3 + Vite 项目中使用 Tailwind CSS 4.0

文章目录 首先是我的package.json根据官网步骤VS Code安装插件验证是否引入成功参考资料 首先是我的package.json {"name": "aplumweb","private": true,"version": "0.0.0","type": "module","s…

AURIX TC275学习笔记4 官方GTM例程 GTM_TOM_PWM_1

文章目录 概述其他例程 代码分析IfxGtm_enable()IfxGtm_Cmu_enableClocks()IfxGtm_Tom_Pwm_initConfig()IfxGtm_Tom_Pwm_init()IfxGtm_Tom_Pwm_start()fadeLED() 概述 目的&#xf…

ASP.NET Core中间件的概念及基本使用

什么是中间件 中间件是ASP.NET Core的核心组件,MVC框架、响应缓存、身份验证、CORS、Swagger等都是内置中间件。 广义上来讲:Tomcat、WebLogic、Redis、IIS;狭义上来讲,ASP.NET Core中的中间件指ASP.NET Core中的一个组件。中间件…

app专项测试(网络测试流程)

一、网络测试的一般流程 step1:首先要考虑网络正常的情况 ① 各个模块的功能正常可用 ② 页面元素/数据显示正常 step2:其次要考虑无网络的情况 ① APP各个功能在无网络情况下是否可用 ② APP各个页面之间切换是否正常 ③ 发送网络请求时是…

Vue el-input密码输入框 按住显示密码,松开显示*;阻止浏览器密码回填,自写密码输入框;校验输入非汉字内容;文本框聚焦到内容末尾;

输入框功能集合 <template><div style"padding: 10px"><!-- 密码输入框 --><el-input:type"inputType"v-model"password"placeholder"请输入密码"auto-complete"new-password"id"pwd"style…

【数据结构】_复杂度

目录 1. 算法效率 2. 时间复杂度 2.1 时间复杂度概念 2.2 准确的时间复杂度函数式 2.3 大O渐进表示法 2.4 时间复杂度的常见量级 2.5 时间复杂度示例 3. 空间复杂度 3.1 空间复杂度概念 3.2 空间复杂度示例 1. 算法效率 一般情况下&#xff0c;衡量一个算法的好坏是…

Day48_20250130【回校继续打卡】_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II

Day48_20250130_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II 20250130补完 739.每日温度 题目 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0…

ASP.NET Core中间件Markdown转换器

目录 需求 文本编码检测 Markdown→HTML 注意 实现 需求 Markdown是一种文本格式&#xff1b;不被浏览器支持&#xff1b;编写一个在服务器端把Markdown转换为HTML的中间件。我们开发的中间件是构建在ASP.NET Core内置的StaticFiles中间件之上&#xff0c;并且在它之前运…

Text2Sql:开启自然语言与数据库交互新时代(3030)

一、Text2Sql 简介 在当今数字化时代&#xff0c;数据处理和分析的需求日益增长。对于众多非技术专业人员而言&#xff0c;数据库操作的复杂性常常成为他们获取所需信息的障碍。而 Text2Sql 技术的出现&#xff0c;为这一问题提供了有效的解决方案。 Text2Sql&#xff0c;即文…

将Deepseek接入pycharm 进行AI编程

目录 专栏导读1、进入Deepseek开放平台创建 API key 2、调用 API代码 3、成功4、补充说明多轮对话 总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&#x1f308; 博客主页&#xff1a;请点击——…

【人工智能】使用Python实现图像风格迁移:理论、算法与实践

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 图像风格迁移是一种利用深度学习技术将一张图像的内容与另一张图像的风格相结合的技术。本文将深入探讨图像风格迁移的基本理论和实现方法,…

ASP.NET Core筛选器Filter

目录 什么是Filter&#xff1f; Exception Filter 实现 注意 ActionFilter 注意 案例&#xff1a;自动启用事务的筛选器 事务的使用 TransactionScopeFilter的使用 什么是Filter&#xff1f; 切面编程机制&#xff0c;在ASP.NET Core特定的位置执行我们自定义的代码。…

缓存类为啥使用 unordered_map 而不是 map

性能考虑&#xff1a; std::unordered_map 是基于哈希表实现的&#xff0c;而 std::map 是基于红黑树实现的。对于查找操作&#xff0c;std::unordered_map 的平均查找时间复杂度是 O ( 1 ) O(1) O(1)&#xff0c;而 std::map 的查找时间复杂度是 O ( l o g n ) O(log n) O(l…

113,【5】 功防世界 web unseping

进入靶场 代码审计 <?php // 高亮显示当前 PHP 文件的源代码&#xff0c;方便开发者查看代码结构和内容 highlight_file(__FILE__);// 定义一个名为 ease 的类 class ease {// 私有属性 $method&#xff0c;用于存储要调用的方法名private $method;// 私有属性 $args&…

Android记事本App设计开发项目实战教程2025最新版Android Studio

平时上课录了个视频&#xff0c;从新建工程到打包Apk&#xff0c;从头做到尾&#xff0c;没有遗漏任何实现细节&#xff0c;欢迎学过Android基础的同学参加&#xff0c;如果你做过其他终端软件开发&#xff0c;也可以学习&#xff0c;快速上手Android基础开发。 Android记事本课…

绿联NAS安装cpolar内网穿透工具实现无公网IP远程访问教程

文章目录 前言1. 开启ssh服务2. ssh连接3. 安装cpolar内网穿透4. 配置绿联NAS公网地址 前言 本文主要介绍如何在绿联NAS中使用ssh远程连接后&#xff0c;使用一行代码快速安装cpolar内网穿透工具&#xff0c;轻松实现随时随地远程访问本地内网中的绿联NAS&#xff0c;无需公网…

关于React前端

React 是一个用于构建用户界面的开源JavaScript库&#xff0c;由Facebook开发并维护。它专注于构建单个页面的视图层&#xff0c;允许开发者使用声明式编程范式来创建交互式的、可复用的UI组件。React 以其高效、灵活和强大的生态系统而闻名&#xff0c;广泛应用于现代前端开发…

DNN(深度神经网络)近似 Lyapunov 函数

import torch import torch.nn as nn import torch.optim as optim import matplotlib.pyplot as plt # from torchviz import make_dot import torchviz# 1. Lyapunov 函数近似器&#xff08;MLP 结构&#xff09; class LyapunovNet(nn.Module):def __init__(self, input_dim…