Model containers¶
ModelContainer manages one or more independent gpmp.core.Model objects,
one per output. It stores the mean and covariance callables, initial-guess
procedure, selection criterion, selected parameter object, optimizer report, and
underlying gpmp model for each output.
Per-output access¶
Use model[k] to inspect output k. The entry is an attribute-access
dictionary. Main keys are:
model[k]["model"]: underlyinggpmp.core.Model.model[k]["param"]ormodel[k].get_param(): readableParamobject.model[k]["selection_criterion"]: selection criterion used by optimization.model[k]["info"]: optimizer and criterion information afterselect_params.model[k]["prior"]: resolved prior object for classes using REMAP selection with priors.
Core object¶
- class ModelContainer(name, output_dim, parameterized_mean, mean_specification, covariance_specification, initial_guess_procedures=None, selection_criteria=None)
Container for one or more
gpmp.core.Modelobjects.Direct construction requires mean specifications, covariance specifications, and usually subclass methods for building initial guesses, selection criteria, and parameter objects. Applications usually instantiate one of the provided Matérn container classes, such as
Model_ConstantMean_Maternp_REMLorModel_ConstantMean_Maternp_REMAP.- select_params(xi, zi, *, force_param_initial_guess=True, param0=None, use_bounds_from_param_obj=True, bounds=None, bounds_factory=None, bounds_delta=None, method='SLSQP', method_options=None, rebuild_selection_criterion=None)
Select parameters independently for each output.
xihas shape(n, d).zihas shape(n,)for one output or(n, output_dim)for several outputs. Ifparam0is provided, it is used as the optimizer start andforce_param_initial_guessis ignored. Ifparam0is not provided, the method uses the configured initial guess procedure whenforce_param_initial_guessis true or when current parameters are missing.Bounds are selected in this order: explicit
bounds, thenbounds_factory, then bounds from the parameter object whenuse_bounds_from_param_objis true.bounds_deltaintersects the chosen bounds with a local box around the optimizer start.Stores, for each output
k:model[k]["model"].covparam.model[k]["model"].meanparamwhen the mean is parameterized.model[k]["param"], a readablegpmp.parameter.Paramobject.model[k]["info"], the optimizer report and criterion callables.model[k]["prior"]for classes using REMAP selection with priors.
Raises
ValueErrorfor incompatible shapes, invalid bounds, missing observation data when a REMAP criterion needs observations, or missing per-output initialization values.
- predict(xi, zi, xt, convert_in=True, convert_out=True)
Compute posterior means and variances at
xtfor all outputs.xihas shape(n, d),zihas shape(n,)or(n, output_dim), andxthas shape(m, d). Returns(zpm, zpv)with shape(m, output_dim). Withconvert_out=True, returned arrays are NumPy arrays. Withconvert_out=False, they are backend objects.
- loo(xi, zi, convert_in=True, convert_out=True)
Compute leave-one-out predictions for all outputs. Returns
(zloo, sigma2loo, eloo), each with shape(n, output_dim).
- run_diagnosis(xi, zi)
Print per-output parameter-selection status, parameter values, and data summaries through
gpmp.modeldiagnosis. RaisesValueErrorifselect_paramshas not populatedmodel[k]["info"].
- run_perf(xi, zi, *, output_ind=None, loo=True, loo_res=None, xtzt=None, zpmzpv=None, convert_in=True)
Print prediction-performance summaries through
gpmp.modeldiagnosis. Ifoutput_indisNone, reports all outputs. Otherwise, reports only the selected output.loo=Trueenables leave-one-out metrics.loo_resmay provide precomputed(zloom, zloov, eloo)arrays.xtztprovides test points and reference values as(xt, zt).zpmzpvmay provide precomputed predictions as(zpm, zpv). For multi-output arrays,run_perfslices the second dimension for each output.The printed metrics are
tss,press,rss,rmse,rmse/std(z),Q2, andR2. Their definitions are given in Diagnostics and inspection.
- compute_conditional_simulations(xi, zi, xt, n_samplepaths=1)
Draw conditional sample paths at
xt. Returns shape(nt, n_samplepaths)for one output and(nt, n_samplepaths, output_dim)for several outputs.
- sample_parameters(method='nuts', model_indices=None, init_box=None, sampling_box=None, **kwargs)
Sample covariance parameters from the stored selection criterion. Implemented public methods are
"mh","hmc","nuts", and"smc".init_boxinitializes random starts or particles.sampling_boxtruncates the sampling domain. Points outside the box get log-probability-inf.Requires
select_paramsfirst, because the sampler usesmodel[k]["info"].init_boxis mandatory formethod="smc". Returns a dictionary keyed by output index:"mh":{"samples", "mh", "criterion_values"}."hmc"and"nuts":{"samples", "hmc"}or{"samples", "nuts"}."smc":{"particles", "smc"}.
Backend conventions¶
ModelContainer converts inputs with gpmp.num.asarray when
convert_in=True. Prediction, LOO, and conditional-simulation methods return
NumPy arrays when convert_out=True and backend objects when
convert_out=False. Optimizer reports and stored model parameters use
backend objects.
Supporting objects¶
Gaussian Process Model Container
This module defines a ModelContainer object as a wrapper around the Model object in gpmp, simplifying the creation and management of Gaussian Process models. It provides tools for choosing the mean and covariance functions, and accommodates multiple outputs. The module supports parameter selection using user-provided methods (ML, REML…). It is used by SequentialPrediction and SequentialStrategy.
Author: Emmanuel Vazquez <emmanuel.vazquez@centralesupelec.fr> Copyright: 2022-2026, CentraleSupelec License: GPLv3 (refer to LICENSE file)
- class gpmpcontrib.modelcontainer.AttrDict[source]¶
Bases:
dictDict with attribute access to keys (d.k <-> d[‘k’]).
Missing keys raise AttributeError.
- class gpmpcontrib.modelcontainer.SelectionCriterionBuildContext(model, xi=None, zi=None)[source]¶
Bases:
objectContext passed when building a per-output selection criterion.
- Parameters:
model (object)
xi (object)
zi (object)
- gpmpcontrib.modelcontainer.mean_linpred_constant(x, param)[source]¶
Constant mean function for Gaussian Process models, linear predictor type. :param x: Input data points in dimension d. :type x: ndarray(n, d) :param param: Parameters of the mean function (unused in constant mean). :type param: ndarray
- Returns:
Array of ones with shape (n, 1).
- Return type:
ndarray
- gpmpcontrib.modelcontainer.mean_linpred_linear(x, param)[source]¶
Linear mean function for Gaussian Process models, linear predictor type. :param x: Input data points in dimension d. :type x: ndarray(n, d) :param param: Parameters of the mean function (unused in linear mean). :type param: ndarray
- Returns:
- Matrix [1, x_[1,1], …, x_[1, d]
1, x_[2,1], …, x_[2, d] … 1, x_[n,1], …, x_[n, d]] ]
- Return type:
ndarray