hypertools.Pipeline

class hypertools.Pipeline(steps)[source]

Chain hypertools model specs into one fit/transform-able object.

Mirrors scikit-learn’s Pipeline: fit/fit_transform fit every step from scratch (in order); transform re-applies the already-fitted steps to new data without refitting them.

Parameters:
stepslist

Each element is either a (name, spec) tuple or a bare spec. A spec is anything unpack_model accepts: a registry name (string), a class, an already-constructed (or already-fitted) instance, a dict spec ({‘model’: …, ‘args’: […], ‘kwargs’: {…}} or the legacy {‘model’: …, ‘params’: {…}}), or a nested Pipeline. Bare specs are auto-named after their resolved class (lowercased), with a numeric suffix on collision (‘hyperalign’, then ‘hyperalign-1’). Explicit names must be UNIQUE: duplicates raise a ValueError (like scikit-learn’s Pipeline), since named_steps is keyed by name and a duplicate would silently shadow earlier steps.

Attributes:
stepslist of (str, object)

The named, resolved (but not-yet-necessarily-fitted) steps, in order.

Methods

fit(data)

Fit every step in order (see fit_transform); returns self.

fit_transform(data)

Fit and apply every step in order, feeding each step's output to the next.

get_metadata_routing()

Get metadata routing of this object.

get_params([deep])

Get parameters for this estimator.

inverse_transform(data)

Best-effort reverse pass through steps that implement inverse_transform, most-recent-step-first.

set_fit_request(*[, data])

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

set_inverse_transform_request(*[, data])

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

set_params(**params)

Set the parameters of this estimator.

set_transform_request(*[, data])

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

transform(data)

Apply the already-fitted steps (in order) to data.

Notes

steps stores already-resolved (name, instance) tuples (specs are resolved to instances in __init__), not the raw constructor input. This deviates from scikit-learn’s clone contract, which expects get_params/ set_params to round-trip the exact constructor arguments – so sklearn.base.clone(pipe) compatibility is not guaranteed.

Steps receive the running output AS-IS (no stacking/unstacking), so raw scikit-learn steps operate on a single array/DataFrame; only hypertools’ own stage wrappers (aligners, manipulators, dispatcher steps from build_pipeline) handle multi-dataset lists. For lists of datasets, prefer hyp.apply_model(…, stack=True) or the dispatcher kwargs. Raw steps are also applied via their own preferred method (fit_transform, then fit_predict), which can differ in KIND from apply_model’s ‘auto’ mode for the same model – e.g. a raw GaussianMixture step yields hard labels here but membership probabilities (predict_proba) through apply_model.

Examples

>>> from hypertools import Pipeline
>>> pipe = Pipeline(['ZScore', 'PCA'])
>>> out = pipe.fit_transform(x)
>>> out2 = pipe.transform(other_x)
__init__(steps)[source]

Methods

__init__(steps)

fit(data)

Fit every step in order (see fit_transform); returns self.

fit_transform(data)

Fit and apply every step in order, feeding each step's output to the next.

get_metadata_routing()

Get metadata routing of this object.

get_params([deep])

Get parameters for this estimator.

inverse_transform(data)

Best-effort reverse pass through steps that implement inverse_transform, most-recent-step-first.

set_fit_request(*[, data])

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

set_inverse_transform_request(*[, data])

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

set_params(**params)

Set the parameters of this estimator.

set_transform_request(*[, data])

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

transform(data)

Apply the already-fitted steps (in order) to data.

Attributes

is_fitted

True once fit/fit_transform has been called at least once.

named_steps

dict view of self.steps, keyed by step name.