1

我想在 python 中拟合一个具有负二项式链接函数和 L1 正则化(套索)的广义线性模型。Matlab 提供了很好的功能:

lassoglm(X,y, distr)

其中 distr 可以是泊松、二项式等。

我查看了 statmodels 和 scikit-learn 但我没有找到任何可以指导我找到解决方案的现成函数或示例。在 matlab 中,他们似乎将其最小化:

min (1/N * Deviance(β0,β) + λ * sum(abs(β)) )

其中偏差取决于链接功能。

有没有办法使用 scikit 或 statsmodels 轻松实现这一点,或者我应该选择 cvxopt?

4

1 回答 1

1

statsmodels 已经有一段时间fit_regularized用于离散模型,包括 NegativeBinomial。

http://statsmodels.sourceforge.net/devel/generated/statsmodels.discrete.discrete_model.NegativeBinomial.fit_regularized.html

它没有文档字符串(我刚刚看到)。Poisson 的文档字符串具有相同的信息http://statsmodels.sourceforge.net/devel/generated/statsmodels.discrete.discrete_model.Poisson.fit_regularized.html 文档或单元测试中应该有一些示例。

它使用带有 scipy slsqp 或可选(如果已安装)的 cvxopt 的内部算法。与最陡下降或坐标下降方法相比,这仅适用于特征/解释变量的数量不太大的情况。

GLM 的弹性网络坐标下降正在进行中的拉取请求,很可能在 statsmodels 0.8 中可用。

于 2015-05-17T23:01:33.203 回答