Statsmodels内で線形LASSO回帰を使用して、モデルの記述に「数式」表記を使用できるようにしたいと思います。これにより、多くのカテゴリ変数とそれらの相互作用を操作するときにコーディング時間を大幅に節約できます。ただし、統計モデルにはまだ実装されていないようです。
なげなわは確かにstatsmodelsに実装されています。ドキュメントは以下のURLにあります:
正確には、statsmodelの実装には、L1とL2の両方の正則化があり、それらの相対的な重みはL1_wtパラメーターで示されます。一番下の式を見て、やりたいことを正確に実行していることを確認する必要があります。
エラスティックネットの実装に加えて、statsmodelsに実装されている平方根ラッソメソッドもあります。
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を従属変数とします。