pod.build_kriging_candidate_kernels
build_kriging_candidate_kernels(n_features)Builds the candidate covariance kernels evaluated for the Kriging surrogate.
Every candidate has the form C * R(u, u') + WhiteKernel, evaluated on standardised inputs u (see ScaledGaussianProcessRegressor):
Cis the process variance sigma^2 ([M26] Eq. 3).Ris the correlation function, with one length scale per input (anisotropic, [M26] Eq. 5; [UQLab]Corr.Type = 'Ellipsoidal'). The families are those compared in [M26] Sec. 4.3.1: exponential (Matérn 1/2), Matérn 3/2, Matérn 5/2 and Gaussian. [digiqual] omits UQLab’s “linear” correlation because scikit-learn does not provide it.WhiteKernelis the observation-noise (nugget) variance tau^2, learned by maximum likelihood alongside the length scales. This follows [M25-code] (Regression.SigmaNSQ = 'auto'). [M26] instead treats the response as deterministic and interpolates it exactly; a learned nugget reduces to that case when the data has no scatter.
Learning the nugget is essential when the chosen inputs do not fully determine the response (e.g. a model trained on Area and Offset when the response also depends on flaw shape). If the noise were fixed too small, the likelihood would be maximised by shrinking a length scale until the surface interpolates the scatter. That produces a spiky surface whose slices revert to the prior mean away from data and whose bootstrap refits are unstable.
Length-scale initial value (1) and lower bound (1e-3) follow [UQLab]. The upper bound is 1e3 rather than UQLab’s 10 [digiqual], so that an input with no influence can take a length scale far longer than its range (an effectively flat direction) instead of sitting on the bound.
The kernels are intended for use with normalize_y=True, so C and the noise level are expressed relative to the variance of the training response.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| n_features | int | Number of input dimensions. | required |
Returns
| Name | Type | Description |
|---|---|---|
| dict[str, Any] | dict[str, Kernel]: Mapping of human-readable kernel name to an unfitted | |
| dict[str, Any] | scikit-learn kernel. |