2017-04-17 585 views
2

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

回答

3

Lasso确实在statsmodels中实施。该文档在以下链接给出:

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

准确地说,在statsmodel执行同时具有L1和L2正则化,以通过L1_wt参数指示它们的相对重量。你应该看看底部的公式,以确保你正在做你想做的事。

+0

正确!当我读到statsmodels使用弹性网络正则化时,我停了下来。现在你让我意识到LASSO和脊线正则化只是弹性网络正则化的特例。谢谢! – famargar

0

可以使用scikit-learn的Patsy获得与statsmodels中的公式符号相同的结果。请参见下面的代码:具有X作为自变量,和y通常作为符号依赖一个

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学习。