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