2017-04-17 586 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學習。