8. Fitting¶
- class lsqfitgp.empbayes_fit(hyperprior, gpfactory, data, raises=True, minkw={}, gpfactorykw={}, jit=False, method='gradient', initial='priormean', verbosity=0)¶
Maximum a posteriori fit.
Maximizes the marginal likelihood of the data with a Gaussian process model that depends on hyperparameters, multiplied by a prior on the hyperparameters.
- Parameters:
- hyperpriorscalar, array or dictionary of scalars/arrays
A collection of gvars representing the prior for the hyperparameters.
- gpfactorycallable
A function with signature gpfactory(hyperparams) -> GP object. The argument hyperparams has the same structure of the empbayes_fit argument hyperprior. gpfactory must be JAX-friendly, i.e., use jax.numpy and jax.scipy instead of plain numpy/scipy and avoid assignments to arrays.
- datadict, tuple or callable
Dictionary of data that is passed to GP.marginal_likelihood on the GP object returned by gpfactory. If a tuple, it contains the first two arguments to GP.marginal_likelihood. If a callable, it is called with the same arguments of gpfactory and must return the argument(s) for GP.marginal_likelihood.
- raisesbool, optional
If True (default), raise an error when the minimization fails. Otherwise, use the last point of the minimization as result.
- minkwdict, optional
Keyword arguments passed to scipy.optimize.minimize.
- gpfactorykwdict, optional
Keyword arguments passed to gpfactory, and also to data if it is a callable.
- jitbool
If True, use jax’s jit to compile the minimization target. Default False.
- methodstr
Minimization strategy. Options:
- ‘nograd’
Use a gradient-free method.
- ‘gradient’
Use a gradient-only method (default).
- ‘hessian’
Use a Newton method with the Hessian.
- ‘fisher’
Use a Newton method with the Fisher information matrix plus the hyperprior precision matrix.
- ‘hessmod’
Use a Newton method with a modified Hessian where the second derivatives of the prior covariance matrix w.r.t. the hyperparameters are assumed to be zero.
- initialstr, scalar, array, dictionary of scalars/arrays
Starting point for the minimization, matching the format of hyperprior, or one of the following options:
- ‘priormean’
Start from the hyperprior mean (default).
- ‘priorsample’
Take a random sample from the hyperprior.
- verbosityint
An integer indicating how much information is printed on the terminal:
- 0
No logging (default).
- 1
Report starting point and result.
- 2
More detailed report.
- 3
Log each iteration.
- 4
More detailed iteration log.
- Raises:
- RuntimeError
The minimization failed and raises is True.
- Attributes:
- pscalar, array or dictionary of scalars/arrays
A collection of gvars representing the hyperparameters that maximize the marginal likelihood. The covariance matrix is computed as the inverse of the hessian of the marginal likelihood. These gvars do not track correlations with the hyperprior or the data.
- pmeanscalar, array or dictionary of scalars/arrays
Mean of p.
- pcovscalar, array or dictionary of scalars/arrays
Covariance matrix of p.
- minresultscipy.optimize.OptimizeResult
The result object returned by scipy.optimize.minimize.
- minargsdict
The arguments passed to scipy.optimize.minimize.