某些特征的 Lasso 系数高于线性回归系数

机器算法验证 多重回归 Python 套索 正则化 岭回归
2022-03-23 04:47:50

我正在使用 Lasso 正则化来避免两个特征(X1 和 X2)之间的过度拟合和多重共线性,因为我有 14 个独立的特征。我在某些特征上得到了一些不错的结果,Lasso 能够将系数降低到 0,但对于其他特征,线性回归系数小于 Lasso(Ridge 也是如此)。

lr = LinearRegression()
lr.fit(X, Y)
lr_coeff = lr.coef_
lr_intercept = lr.intercept_

lasso = Lasso(alpha=10)
lasso.fit(X, Y)
lasso_coeff = lasso.coef_
lasso_intercept = lasso.intercept_

结果:

    lr_coeff  lr_intercept  lasso_coeff  lasso_intercept
0   0.968567      16.01858     0.000000       103.471224
1   1.743420      16.01858     1.730920       103.471224
2   5.221518      16.01858     3.931450       103.471224
3   4.769328      16.01858     3.186003       103.471224
4   6.341612      16.01858     4.265931       103.471224
5   2.272504      16.01858     1.277541       103.471224
6   3.104016      16.01858     1.648253       103.471224
7   1.418943      16.01858     0.667189       103.471224
8   1.144834      16.01858     0.000000       103.471224
9   0.138457      16.01858     0.000000       103.471224
10  1.272995      16.01858     0.693323       103.471224
11  0.188450      16.01858     0.503958       103.471224
12 -2.334245      16.01858    -0.167953       103.471224
13 -0.475823      16.01858     0.124608       103.471224
14  0.489548      16.01858     0.512034       103.471224

真挚地,

2个回答

正如German Demidov 所说,这完全没问题。Lasso 会将您的一些系数缩小到零,但与 OLS 估计值相比,它不具有缩小所有系数的特性。相反,它可能会增加一些系数来“补偿”它已经缩小的系数。没有什么可担心的。(不过,这是一个非常好的问题。)

当您更接近 OLS 解决方案时,Lasso 系数会再次缩小。

参见例如:为什么在联合最小二乘方向下,LARS 回归中的某些系数可能会降低?

这是系数和误差之间关系的图像。套索平衡了误差(由绿色表面描绘)和系数的大小(红色表面)。对于给定的正则化量,可能某些参数“过冲”并且大于实际的 OLS。通过使这些参数更大,您将拥有更低的其他参数。

套索路径的直观视图

当一个参数可以扮演其他几个角色时,就会发生这种情况。在这种情况下,即使系数很小(并且高于真实模型系数),最初这个参数也能够很好地模拟结果,但如果你允许系数的总和更大,那么其他的可能会赶上.

这个原则的一个清楚的例子是在这个问题中,一个应该为零的系数最初是正的发生这种情况是因为当惩罚很高时,参数对结果的建模比真实模型更好:Ridge 在特征选择上是否比 Lasso 更稳健?