11

我很想在 statsmodels 中使用线性 LASSO 回归,以便能够使用“公式”表示法来编写模型,这将在处理许多分类变量及其交互时为我节省相当多的编码时间。但是,它似乎还没有在统计模型中实现?

4

2 回答 2

15

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

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

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

除了弹性网络实现之外,还有一个平方根套索方法在 statsmodels 中实现。

于 2017-06-16T16:16:43.353 回答
0

可以将 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 作为因变量。

于 2017-04-17T09:50:25.753 回答