gloss.surrogate — surrogate backends

GLOSS works with any model that exposes .fit(X, y) and .predict(X). The submodules below provide convenience adapters around scikit-learn ML models and PyTorch neural networks.

Auto-selection

gloss.surrogate.auto_select.auto_select_surrogate(X, y, cv_folds=5, scoring='neg_root_mean_squared_error')[source]

Select the best surrogate model via cross-validation, retrain on all data.

Parameters:
  • X – Training features, shape (n_samples, n_features).

  • y – Training targets, shape (n_samples,).

  • cv_folds – Number of CV folds.

  • scoring – sklearn scoring metric string.

Returns:

Fitted model with predict(X) method.

ML models

gloss.surrogate.ml_models.get_ml_model_configs()[source]

Return list of ML model configs for auto-selection.

Each config is a dict with: name, estimator, param_grid.

NN models

class gloss.surrogate.nn_models.NNRegressor[source]

Bases: _BaseNNRegressor

Plain feedforward neural network.

set_score_request(*, sample_weight='$UNCHANGED$')

Configure whether metadata should be requested to be passed to the score method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the 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.

Parameters:
  • sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for sample_weight parameter in score.

  • self (NNRegressor)

Returns:

self (object) – The updated object.

Return type:

NNRegressor

class gloss.surrogate.nn_models.ResNetRegressor[source]

Bases: _BaseNNRegressor

ResNet-style network with skip connections.

__init__(hidden_size=64, n_blocks=3, **kwargs)[source]
set_score_request(*, sample_weight='$UNCHANGED$')

Configure whether metadata should be requested to be passed to the score method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the 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.

Parameters:
  • sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for sample_weight parameter in score.

  • self (ResNetRegressor)

Returns:

self (object) – The updated object.

Return type:

ResNetRegressor

class gloss.surrogate.nn_models.HighwayNNRegressor[source]

Bases: _BaseNNRegressor

Highway network with gated skip connections.

__init__(hidden_size=64, n_blocks=3, **kwargs)[source]
set_score_request(*, sample_weight='$UNCHANGED$')

Configure whether metadata should be requested to be passed to the score method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the 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.

Parameters:
  • sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for sample_weight parameter in score.

  • self (HighwayNNRegressor)

Returns:

self (object) – The updated object.

Return type:

HighwayNNRegressor

gloss.surrogate.nn_models.get_nn_model_configs(input_dim)[source]

Return list of NN model configs for auto-selection.