【问题标题】:Is LASSO regression implemented in Statsmodels?LASSO 回归是否在 Statsmodels 中实现?
【发布时间】:2017-09-12 19:14:55
【问题描述】:

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

【问题讨论】:

    标签: python regression statsmodels lasso-regression


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      除了弹性网络实现之外,statsmodels 中还实现了平方根 Lasso 方法。

      【讨论】:

      • 正确!当我读到 statsmodels 使用弹性网络正则化时,我停了下来。现在你让我意识到 LASSO 和岭正则化只是弹性网络正则化的特例。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2018-11-08
      • 2019-04-09
      • 1970-01-01
      • 2019-10-16
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      相关资源
      最近更新 更多