bayesvalidrox.surrogate_models.orthogonal_matching_pursuit.OrthogonalMatchingPursuit

class bayesvalidrox.surrogate_models.orthogonal_matching_pursuit.OrthogonalMatchingPursuit(fit_intercept=True, normalize=False, copy_x=True, verbose=False)

Bases: LinearModel, RegressorMixin

Regression with Orthogonal Matching Pursuit [1].

Parameters

fit_interceptboolean, optional (DEFAULT = True)

whether to calculate the intercept for this model. If set to false, no intercept will be used in calculations (e.g. data is expected to be already centered).

copy_xboolean, optional (DEFAULT = True)

If True, X will be copied; else, it may be overwritten.

verboseboolean, optional (DEFAULT = FALSE)

Verbose mode when fitting the model

Attributes

coef_array, shape = (n_features)

Coefficients of the regression model (mean of posterior distribution)

active_array, dtype = np.bool, shape = (n_features)

True for non-zero coefficients, False otherwise

References

[1] Pati, Y., Rezaiifar, R., Krishnaprasad, P. (1993). Orthogonal matching

pursuit: recursive function approximation with application to wavelet decomposition. Proceedings of 27th Asilomar Conference on Signals, Systems and Computers, 40-44.

__init__(fit_intercept=True, normalize=False, copy_x=True, verbose=False)

Methods

__init__([fit_intercept, normalize, copy_x, ...])

blockwise_inverse(a_inv, b, c, d)

Non-singular square matrix M defined as M = [[A B]; [C D]] .

fit(X, y)

Fits Regression with Orthogonal Matching Pursuit Algorithm.

get_metadata_routing()

Get metadata routing of this object.

get_params([deep])

Get parameters for this estimator.

loo_error(psi, inv_inf_matrix, y, coeffs)

Calculates the corrected LOO error for regression on regressor matrix psi that generated the coefficients based on [1] and [2].

predict(X)

Computes predictive distribution for test set.

score(X, y[, sample_weight])

Return the coefficient of determination of the prediction.

set_params(**params)

Set the parameters of this estimator.

set_score_request(*[, sample_weight])

Request metadata passed to the score method.

blockwise_inverse(a_inv, b, c, d)

Non-singular square matrix M defined as M = [[A B]; [C D]] . B, C and D can have any dimension, provided their combination defines a square matrix M.

Parameters

a_invfloat or array

inverse of the square-submatrix A.

bfloat or array

Information matrix with all new regressor.

cfloat or array

Transpose of B.

dfloat or array

Information matrix with all selected regressors.

Returns

Marray

Inverse of the information matrix.

fit(X, y)

Fits Regression with Orthogonal Matching Pursuit Algorithm.

Parameters

X: {array-like, sparse matrix} of size (n_samples, n_features)

Training data, matrix of explanatory variables

y: array-like of size [n_samples, n_features]

Target values

Returns

selfobject

Returns self.

get_metadata_routing()

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns

routingMetadataRequest

A MetadataRequest encapsulating routing information.

get_params(deep=True)

Get parameters for this estimator.

Parameters

deepbool, default=True

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns

paramsdict

Parameter names mapped to their values.

loo_error(psi, inv_inf_matrix, y, coeffs)

Calculates the corrected LOO error for regression on regressor matrix psi that generated the coefficients based on [1] and [2].

[1] Blatman, G., 2009. Adaptive sparse polynomial chaos expansions for

uncertainty propagation and sensitivity analysis (Doctoral dissertation, Clermont-Ferrand 2).

[2] Blatman, G. and Sudret, B., 2011. Adaptive sparse polynomial chaos

expansion based on least angle regression. Journal of computational Physics, 230(6), pp.2345-2367.

Parameters

psiarray of shape (n_samples, n_feature)

Orthogonal bases evaluated at the samples.

inv_inf_matrixarray

Inverse of the information matrix.

yarray of shape (n_samples, )

Targets.

coeffsarray

Computed regresssor cofficients.

Returns

loo_errorfloat

Modified LOOCV error.

predict(X)

Computes predictive distribution for test set.

Parameters

X: {array-like, sparse} (n_samples_test, n_features)

Test data, matrix of explanatory variables

Returns

y_hat: numpy array of size (n_samples_test,)

Estimated values of targets on test set (i.e. mean of predictive distribution)

score(X, y, sample_weight=None)

Return the coefficient of determination of the prediction.

The coefficient of determination \(R^2\) is defined as \((1 - \frac{u}{v})\), where \(u\) is the residual sum of squares ((y_true - y_pred)** 2).sum() and \(v\) is the total sum of squares ((y_true - y_true.mean()) ** 2).sum(). The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a \(R^2\) score of 0.0.

Parameters

Xarray-like of shape (n_samples, n_features)

Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead with shape (n_samples, n_samples_fitted), where n_samples_fitted is the number of samples used in the fitting for the estimator.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

True values for X.

sample_weightarray-like of shape (n_samples,), default=None

Sample weights.

Returns

scorefloat

\(R^2\) of self.predict(X) w.r.t. y.

Notes

The \(R^2\) score used when calling score on a regressor uses multioutput='uniform_average' from version 0.23 to keep consistent with default value of r2_score(). This influences the score method of all the multioutput regressors (except for MultiOutputRegressor).

set_params(**params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters

**paramsdict

Estimator parameters.

Returns

selfestimator instance

Estimator instance.

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OrthogonalMatchingPursuit

Request metadata passed to the score method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config()). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True: metadata is requested, and passed to score if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to score.

  • None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str: metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default (sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline. Otherwise it has no effect.

Parameters

sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in score.

Returns

selfobject

The updated object.