小编M-W*_*-Wi的帖子

如何在sklearn高斯过程回归使用的优化函数中更改max_iter?

我正在使用 sklearn 的 GPR 库,但偶尔会遇到这个烦人的警告:

ConvergenceWarning: lbfgs failed to converge (status=2):
ABNORMAL_TERMINATION_IN_LNSRCH.

Increase the number of iterations (max_iter) or scale the data as shown in:
    https://scikit-learn.org/stable/modules/preprocessing.html
  _check_optimize_result("lbfgs", opt_res)
Run Code Online (Sandbox Code Playgroud)

我不仅几乎找不到有关此警告的文档,而且 max_iter 根本不是 sklearn 的 GPR 模型中的参数。我试图按照建议重新调整数据,但它没有用,坦率地说我不理解它(我还需要调整输出吗?同样,很少有文档)。

增加优化过程中的最大迭代次数是有道理的,但 sklearn 似乎没有办法做到这一点,这令人沮丧,因为他们建议这样做以响应此警告。

查看 GPR源代码,这是 sklearn 调用优化器的方式,

 def _constrained_optimization(self, obj_func, initial_theta, bounds):
        if self.optimizer == "fmin_l_bfgs_b":
            opt_res = scipy.optimize.minimize(
                obj_func, initial_theta, method="L-BFGS-B", jac=True,
                bounds=bounds)
            _check_optimize_result("lbfgs", opt_res)
            theta_opt, func_min = opt_res.x, opt_res.fun
        elif callable(self.optimizer):
            theta_opt, func_min = \
                self.optimizer(obj_func, initial_theta, bounds=bounds)
        else:
            raise ValueError("Unknown …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn gaussian-process

7
推荐指数
2
解决办法
3243
查看次数

标签 统计

gaussian-process ×1

python ×1

scikit-learn ×1