swectral.combine_regressor#

swectral.combine_regressor(trainable_processor, regressor, trainable_processor_label=None, regressor_label=None, preserve_train_state=False)[source]#

Combine trainable data preprocessing models with a regressor into a unified estimator that preserves component names.

This wrapper functions similarly to scikit-learn’s Pipeline but compatible with any transformer and regressor that follows scikit-learn’s method conventions.

Parameters:
trainable_processorobject or list of object

Data preprocessing model(s), any trainable data preprocessing, feature selection, or resampling model(s).

regressorobject

Regression model.

trainable_processor_labelstr or list of str or None, optional

Label(s) for the transformer(s). Defaults to model class names if not specified.

regressor_label: str or None

Label for the regressor. Defaults to model class name if not specified.

Returns:
object

Combined regression model.

Return type:

object

Examples

Prepare models:

>>> from sklearn.feature_selection import SelectKBest, f_regression
>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.neighbors import KNeighborsRegressor

>>> selector = SelectKBest(f_regression, k=5)
>>> scaler = StandardScaler()
>>> knn = KNeighborsRegressor(n_neighbors=3)

Without specifying model labels:

>>> combined_model = combine_regressor([scaler, selector], knn)

Specify model labels:

>>> combined_model = combine_regressor(
...     [scaler, selector],
...     knn,
...     trainable_processor_label=['scaler', 'selector'],
...     regressor_label='knn'
... )