我正在尝试使用 fmin_bfgs() 或 fmin_l_bfgs_b() 最小化具有大量参数(略超过 7000)的函数。当我输入命令
opt_pars = fmin_l_bfgs_b(obj_f, pars, approx_grad=1)
(其中 obj_f 是我要最小化的函数, pars 是初始参数的向量)该函数永远运行,直到 python 告诉我它必须终止程序。从来没有任何输出。我尝试添加参数 maxfunc = 2 以查看它是否到达任何地方并且发生了同样的事情(永远运行然后python终止了程序)。
我只是想弄清楚该功能可能出了什么问题。似乎它可能陷入了一个while循环或其他什么东西。有没有人遇到过这个问题?如果没有,我还可以在此处使用一些一般调试帮助(因为我对 Python 比较陌生)来了解如何监视函数正在执行的操作。
最后,也许有人可以为我正在尝试的任务推荐不同的功能或包。我正在尝试将套索正则化泊松回归拟合到稀疏数据,其中包含 7000 个变量的大约 1200 万个观测值。
PS很抱歉没有包括我试图最小化的-log似然函数,但这将是完全无法解释的。
非常感谢您的帮助!
扎克