Statsmodels 中是否实施了 LASSO 回归?

Is LASSO regression implemented in Statsmodels?

我很想在 statsmodels 中使用线性 LASSO 回归,因此能够使用 'formula' 符号来编写模型,这将在处理许多分类变量时节省我相当多的编码时间,以及他们的互动。但是,它似乎还没有在统计模型中实现?

可以将 Patsy 与 scikit-learn 结合使用,以获得与使用 statsmodels 中的公式表示法相同的结果。请参阅下面的代码:

from patsy import dmatrices

# create dummy variables, and their interactions
y, X = dmatrices('outcome ~ C(var1)*C(var2)', df, return_type="dataframe")
# flatten y into a 1-D array so scikit-learn can understand it
y = np.ravel(y)

我现在可以使用在 scikit-learn 中实现的任何模型,其常用符号将 X 作为自变量,将 y 作为相关变量。

Lasso 确实在 statsmodels 中实现了。文档在下面的 url 中给出:

http://www.statsmodels.org/dev/generated/statsmodels.regression.linear_model.OLS.fit_regularized.html

准确地说,statsmodel 中的实现同时具有 L1 和 L2 正则化,它们的相对权重由 L1_wt 参数指示。您应该查看底部的公式,以确保您所做的正是您想要做的。

除了elastic net的实现,statsmodels中也实现了square root Lasso方法。