pretab.transformers.ReLUExpansionTransformer
- class pretab.transformers.ReLUExpansionTransformer(output_dim=UNSET, target_aware=False, placement_strategy=UNSET, task='regression', adaptive=False, min_output_dim=UNSET, max_output_dim=UNSET, random_state=None)[source]
Bases:
BaseCenterExpansionApplies ReLU basis expansion to input features using fixed or data-driven center placement.
This transformer expands each feature using a set of ReLU activation functions centered at fixed positions, which can be either uniformly/quantile spaced or determined by a target-aware selector based on the target.
- Parameters:
output_dim (int, default=6) – Number of ReLU centers (output columns) per feature.
target_aware (bool, default=False) – Whether to place centers with a target-aware selector (requires
y).placement_strategy ({"cart", "lightgbm", "uniform", "quantile"}, optional) – Selector when
target_aware=True("cart"or"lightgbm"); spacing whentarget_aware=False("uniform"or"quantile"). If left unset, resolves to"cart"on the target-aware path and"quantile"otherwise.task ({"regression", "classification"}, default="regression") – Task type for the target-aware selector used to place centers.
adaptive (bool, default=False) – If True (with
target_aware=True), the per-feature number of centers may vary within[min_output_dim, max_output_dim]instead of being fixed tooutput_dim. Has no effect on thequantile/uniformpaths.min_output_dim (int or None, default=None) – Lower bound on the per-feature number of centers in adaptive mode.
max_output_dim (int or None, default=None) – Upper bound on the per-feature number of centers in adaptive mode.
random_state (int or None, default=None) – Random state forwarded to the target-aware selector for reproducibility.
- Variables:
centers (list of ndarray) – A list of arrays containing the center locations for each input feature.
total_output_dim (int) – Total number of output columns across all features (fitted).
Notes
For a feature \(x\) and centers \(c_i\), each output column applies a rectified linear unit
\[\phi_i(x) = \max(0,\; x - c_i),\]producing
output_dimnew features per original feature on the non-target-aware path; the target-aware default may place a data-driven number.Examples
>>> import numpy as np >>> from pretab.transformers import ReLUExpansionTransformer >>> X = np.array([[1.0], [2.0], [3.0]]) >>> transformer = ReLUExpansionTransformer(output_dim=3, target_aware=False, placement_strategy="uniform") >>> transformer.fit(X) ReLUExpansionTransformer(...) >>> transformer.transform(X).shape (3, 3)- __init__(output_dim=UNSET, target_aware=False, placement_strategy=UNSET, task='regression', adaptive=False, min_output_dim=UNSET, max_output_dim=UNSET, random_state=None)[source]
Methods
__init__([output_dim, target_aware, ...])fit(X[, y])Place per-feature centers from a target-aware selector or quantile/uniform spacing.
fit_transform(X[, y])Fit to data, then transform it.
get_feature_names_out([input_features])Return output feature names of the form
{feature}_{suffix}{j}.get_metadata_routing()Get metadata routing of this object.
get_params([deep])Get parameters for this estimator.
set_output(*[, transform])Set output container.
set_params(**params)Set the parameters of this estimator.
transform(X)Expand every feature against its centers and stack the results.
Attributes
total_output_dim_Total number of output columns produced across all input features.
centers_n_features_in_adaptive