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

devtools/2025/2/11 6:00:09/

回归(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.ppmy.cn/devtools/157840.html

相关文章

MySQL 入门大全:数据类型

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

关于Redis的事务

认识Redis的事务 MySQL的事务拥有四个特性: 原子性:把多个操作,打包成一个整体了。张三给李四转钱,李四没收到,张三就不能扣钱。 一致性:事务执行之前和之后,数据能对得上。张三有1000&#…

MySQL与钉钉数据融合,加速企业付款退款自动化进程

在当今数字化转型的大潮中,企业对于高效、自动化业务流程的需求日益迫切。特别是在财务管理领域,付款与退款流程的自动化不仅能够显著提升工作效率,还能有效减少人为错误,增强企业的竞争力。本文将深入探讨MySQL与钉钉数据的融合&…

Docker从入门到精通- 容器化技术全解析

第一章:Docker 入门 一、什么是 Docker? Docker 就像一个超级厉害的 “打包神器”。它能帮咱们把应用程序和它运行所需要的东东都整整齐齐地打包到一起,形成一个独立的小盒子,这个小盒子在 Docker 里叫容器。以前呢,…

CSS(学习自用-day1)

目录 一、实现CSS的三种方式 1、引入外部CSS样式 2、内部样式 3、内联样式 二、CSS修饰各种标签使用方式 1、通用 2、指定id 3、指定属性 4、指定class 5、全选择器 6、子代选择器,指定某个标签内部的标签 三、边框及各种边距 四、CSS的position定位 1、…

【目标检测xml2txt】label从VOC格式xml文件转YOLO格式txt文件

目录 🌷🌷1.VOC格式xml文件 🍀🍀2.YOLO格式txt文件 🌾🌾3. xml2txt代码(python) 整理不易,欢迎一键三连!!! 送你们一条美丽的--分割线-- 🌷🌷1.VOC格式xml文件 VOC数据格式是一种用于图像标注的标准格式,它用于存储图像及其相关的标注信息。在VOC格…

如何使用C++将处理后的信号保存为PNG和TIFF格式

在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示。C提供了多种库来处理图像数据,本文将介绍如何使用stb_image_write库保存为PNG格式图像以及使用OpenCV库保存为TIFF格式图像。 1. PNG格式保存 使用stb_ima…

【RabbitMQ的重试配置retry】重试配置不生效原因

在Spring Boot项目中,RabbitMQ的retry重试配置不生效可能由以下原因导致: 核心问题定位 retry:enabled: true # ✅ 配置已开启max-attempts: 3 # ✅ 参数有效但实际未触发重试,可能原因如下: 1. 容器类型不匹配 症状表现 配置…