Polynomial chaos expansion¶
The polynomial chaos expansion (PCE) discipline expresses the model output as a weighted sum of polynomial functions which are orthonormal in the stochastic input space spanned by the random input variables:
where \(\phi_i(x)=\phi_{\tau_1(i),1}(x_1)\times\ldots\times \phi_{\tau_d(i),d}(x_d)\).
Enumerating strategy¶
The choice of the function \(\tau=(\tau_1,\ldots,\tau_d)\) is an enumerating strategy and \(\tau_j(i)\) is the polynomial degree of \(\psi_{\tau_j(i),j}\).
Distributions¶
PCE are stochastic models whose inputs are random variables and are often used to deal with uncertainty quantification problems.
If \(X_j\) is a Gaussian random variable, \((\psi_{ij})_{i\geq 0}\) is the Legendre basis. If \(X_j\) is an uniform random variable, \((\psi_{ij})_{i\geq 0}\) is the Hermite basis.
When the problem is deterministic, we can still use PCE under the assumptions that the random variables are independent uniform random variables. Then, the orthonormal basis function is the Hermite basis.
Degree¶
The degree \(P\) of a PCE is defined in such a way that \(\text{degree}(\psi_i)=\sum_{j=1}^d\tau_j(i)\leq P\).
Estimation¶
The coefficients \((w_1, w_2, ..., w_K)\) and the intercept \(w_0\) are estimated either by least square regression, sparse least square regression or quadrature.
Dependence¶
The PCE model relies on the FunctionalChaosAlgorithm class of the openturns library.
-
class
gemseo.mlearning.regression.pce.
PCERegression
(data, probability_space, discipline=None, transformer=None, input_names=None, output_names=None, strategy='LS', degree=2, n_quad=None, stieltjes=True, sparse_param=None)[source] Polynomial chaos expansion.
Constructor.
- Parameters
data (Dataset) – learning dataset
probability_space (ParameterSpace) – probability space.
discipline (MDODiscipline) – discipline to evaluate if strategy=’Quad’ and data is empty.
transformer (dict(str)) – transformation strategy for data groups. If None, do not transform data. Default: None.
input_names (list(str)) – names of the input variables.
output_names (list(str)) – names of the output variables.
strategy (str) – strategy to compute the parameters of the PCE, either ‘LS’, ‘Quad’ or ‘SparseLS’. Default: ‘LS’.
degree (int) – polynomial degree of the PCE
n_quad (int) – number of quadrature points
stieltjes (bool) – stieltjes
sparse_param –
Parameters for the Sparse Cleaning Truncation Strategy and/or hyperbolic truncation of the initial basis:
max_considered_terms (int) – Maximum Considered Terms,
most_significant (int), Most Significant number to retain,
significance_factor (float), Significance Factor,
hyper_factor (float), factor for hyperbolic truncation strategy.