在熊猫数据框架上运行套索和岭回归

时间:2018-04-14 00:02:47

标签: python pandas regression lasso

我有以下代码在提供的数据集上成功运行OLS回归:

y = df['SPXR_{}D'.format(window)]
x = df[cols]
x = sm.add_constant(x)
mod = sm.OLS(y, x)
res = mod.fit()

我将如何运行套索和山脊?我似乎无法找到任何statsmodels函数或包来执行此操作。

使用sklearn更新代码:

y = df['SPXR_{}D'.format(window)]
x = df[cols]
x = sm.add_constant(x)
mod = linear_model.Lasso()
res = mod.fit(x, y)
print(res.coef_)
print(res.intercept_)

res.coef_看起来像这样:

[ 0.  0. -0.  0. -0. -0. -0.  0.  0. -0.  0.  0.  0. -0. -0.  0. -0.]

我是如何使用该功能的? (也许我不应该使用statsmodels将alpha常量添加到我的DF中?)

1 个答案:

答案 0 :(得分:1)

正如sacul所写,最好使用sklearn来做这些事情。在这种情况下,

from sklearn import linear_model
rgr = linear_model.Ridge().fit(x, y)

请注意以下事项:

  1. fit_intercept=True的{​​{1}}参数减少了您手动添加常量的需要。
  2. 无耻插件:我写了ibex,这是一个旨在通过Ridgesklearn更好地工作的图书馆。