【问题标题】:Simultaneously do multiple Poisson regressions in Python在 Python 中同时进行多个泊松回归
【发布时间】:2021-08-12 16:43:59
【问题描述】:

我有表格的数据

n = number of samples

features: n x 1 matrix
data: n x m matrix

我想使用相同的features 执行多个泊松回归,其中输出值因数据列而异。目前,我使用sklearn 一次做一个泊松回归,例如我的 Python 代码看起来像

from sklearn import linear_model

clf = linear_model.PoissonRegressor(fit_intercept=True,alpha=0)
for col in range(m):
    clf.fit(features,data[:,col])

但是,我必须进行许多这些泊松回归,而且单独完成它们太慢了。所以我的问题是:有没有一种方法(在 Python 中)可以同时进行所有这些泊松回归?

如果我改为进行线性回归,那么我可以使用很好的矩阵技巧同时进行这些操作。然而,这里的关键区别在于泊松回归涉及使用优化算法来最大化似然函数。所以本质上,我想一次解决多个优化问题。

我尝试过的一件事是使用scipy.optimize 来最大化每个泊松回归的(对数)似然之和。然而,这对初始化非常敏感并且没有收敛。

因此我希望有一个:

  1. 一个更好的 Python 优化包,我可以使用它来最大化泊松回归目标函数(似然之和),或者
  2. 一个 Python 包,可让您同时进行泊松回归。

有人有什么想法吗?任何帮助将不胜感激非常。谢谢!

【问题讨论】:

    标签: python regression mathematical-optimization poisson


    【解决方案1】:

    您似乎正在寻找multiprocessing
    它将使您能够同时运行 N 泊松回归计算。
    下面是一个简单的例子:

    from multiprocessing import Pool
    
    def f(x):
        return x*x
    
    if __name__ == '__main__':
        with Pool(5) as p:
            print(p.map(f, [1, 2, 3]))
    

    【讨论】:

    • 谢谢!这很有帮助!
    猜你喜欢
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 2018-08-02
    • 2015-05-07
    • 1970-01-01
    相关资源
    最近更新 更多