Skip to content

Protocols

fyt.core.protocols

Protocols defining the interfaces for pipeline components.

These protocols decouple the TrainingPipeline orchestrator from concrete implementations, enabling substitution and easier testing.

DataSplitter

Bases: Protocol

Protocol for data loading and splitting.

split_data(test_size, random_state)

Split data into train/test sets.

Parameters:

Name Type Description Default
test_size float

Proportion of data to use for testing.

required
random_state int

Random seed for reproducibility.

required

Returns:

Type Description
DataSplit

DataSplit containing training and testing data.

FeatureFilter

Bases: Protocol

Protocol for feature selection.

fit(X, y=None)

Fit the feature selector on training data.

Parameters:

Name Type Description Default
X Any

Input features.

required
y Any

Target variable (required for supervised methods).

None

Returns:

Type Description
FeatureFilter

Fitted feature filter instance.

get_feature_names_out(input_features=None)

Get feature names after selection.

Parameters:

Name Type Description Default
input_features Any

Input feature names.

None

Returns:

Type Description
ndarray

Array of selected feature names.

transform(X)

Transform data by selecting features.

Parameters:

Name Type Description Default
X Any

Input features.

required

Returns:

Type Description
Any

Features after selection.

Predictor

Bases: Protocol

Protocol for model training and prediction.

best_params property writable

The best hyperparameters from optimization, if any.

model property

The trained model instance.

model_params property

The base model parameters.

model_type property

The model type identifier.

predict(X)

Make predictions.

Parameters:

Name Type Description Default
X DataFrame

Feature data for prediction.

required

Returns:

Type Description
Series

Predicted values.

predict_proba(X)

Make probability predictions.

Parameters:

Name Type Description Default
X DataFrame

Feature data for prediction.

required

Returns:

Type Description
DataFrame

Predicted probabilities.

train(data_split)

Train the model on training data.

Parameters:

Name Type Description Default
data_split DataSplit

Data split containing training data.

required

Preprocessor

Bases: Protocol

Protocol for feature preprocessing.

fit(X, y=None)

Fit the preprocessor on training data.

Parameters:

Name Type Description Default
X Any

Input features.

required
y Any

Target variable (optional).

None

Returns:

Type Description
Preprocessor

Fitted preprocessor instance.

handle_zero_imputation(X)

Handle zero-to-NaN conversion for configured features.

Parameters:

Name Type Description Default
X Any

Input features.

required

Returns:

Type Description
Any

Features with zeros converted to NaN where configured.

transform(X)

Transform features using fitted preprocessor.

Parameters:

Name Type Description Default
X Any

Input features to transform.

required

Returns:

Type Description
Any

Transformed features.

SeedAware

Bases: Protocol

Protocol for components that accept a random state seed.

TargetTransformer

Bases: Protocol

Protocol for target variable encoding.

class_mapping property

The class-to-label mapping, or None if not available.

fit_transform(y)

Fit the encoder and transform the target variable.

Parameters:

Name Type Description Default
y Series

Target variable to fit and transform.

required

Returns:

Type Description
Series

Transformed target variable.

transform(y)

Transform the target variable using a fitted encoder.

Parameters:

Name Type Description Default
y Series

Target variable to transform.

required

Returns:

Type Description
Series

Transformed target variable.