Python 中的 Lasso 广义线性模型
Lasso Generalized linear model in Python
我想在 python 中拟合具有负二项式 link 函数和 L1 正则化(套索)的广义线性模型。
Matlab 提供了很好的功能:
lassoglm(X,y, distr)
其中 distr 可以是泊松分布、二项分布等
我查看了 statmodels 和 scikit-learn,但我没有找到任何可以指导我找到解决方案的现成函数或示例。
在 matlab 中,他们似乎最小化了这一点:
min (1/N * Deviance(β0,β) + λ * sum(abs(β)) )
偏差取决于 link 函数。
有没有办法用 scikit 或 statsmodels 轻松实现这个,或者我应该使用 cvxopt?
statsmodels 有一段时间了 fit_regularized
离散模型,包括 NegativeBinomial。
没有文档字符串(我刚看到)。 Poisson 的文档字符串具有相同的信息 http://statsmodels.sourceforge.net/devel/generated/statsmodels.discrete.discrete_model.Poisson.fit_regularized.html
文档或单元测试中应该有一些示例可用。
它使用带有 scipy slsqp 或可选(如果已安装)cvxopt 的内部算法。与最速下降法或坐标下降法相比,只适用于features/explanatory变量个数不太大的情况。
用于 GLM 的弹性网坐标下降正在进行中,并且很可能在 statsmodels 0.8 中可用。
我想在 python 中拟合具有负二项式 link 函数和 L1 正则化(套索)的广义线性模型。 Matlab 提供了很好的功能:
lassoglm(X,y, distr)
其中 distr 可以是泊松分布、二项分布等
我查看了 statmodels 和 scikit-learn,但我没有找到任何可以指导我找到解决方案的现成函数或示例。 在 matlab 中,他们似乎最小化了这一点:
min (1/N * Deviance(β0,β) + λ * sum(abs(β)) )
偏差取决于 link 函数。
有没有办法用 scikit 或 statsmodels 轻松实现这个,或者我应该使用 cvxopt?
statsmodels 有一段时间了 fit_regularized
离散模型,包括 NegativeBinomial。
没有文档字符串(我刚看到)。 Poisson 的文档字符串具有相同的信息 http://statsmodels.sourceforge.net/devel/generated/statsmodels.discrete.discrete_model.Poisson.fit_regularized.html 文档或单元测试中应该有一些示例可用。
它使用带有 scipy slsqp 或可选(如果已安装)cvxopt 的内部算法。与最速下降法或坐标下降法相比,只适用于features/explanatory变量个数不太大的情况。
用于 GLM 的弹性网坐标下降正在进行中,并且很可能在 statsmodels 0.8 中可用。