TabNet Regressor#
pytorch_tabnet package initialization.
- class pytorch_tabnet.TabNetRegressor(n_d: int = 8, n_a: int = 8, n_steps: int = 3, gamma: float = 1.3, cat_idxs: List[int] = <factory>, cat_dims: List[int] = <factory>, cat_emb_dim: int | List[int] = 1, n_independent: int = 2, n_shared: int = 2, epsilon: float = 1e-15, momentum: float = 0.02, lambda_sparse: float = 0.001, seed: int = 0, clip_value: int = 1, verbose: int = 1, optimizer_fn: Any = <class 'torch.optim.adam.Adam'>, optimizer_params: Dict = <factory>, scheduler_fn: Any = None, scheduler_params: Dict = <factory>, mask_type: str = 'sparsemax', input_dim: int = None, output_dim: int = None, device_name: str = 'auto', n_shared_decoder: int = 1, n_indep_decoder: int = 1, grouped_features: List[List[int]] = <factory>, compile_backend: str = '')[source]
Bases:
TabSupervisedModelTabNet model for regression tasks.
- compute_loss(y_pred: Tensor, y_true: Tensor, w: Tensor | None = None) Tensor[source]
Compute the loss for regression.
- Parameters:
y_pred (torch.Tensor) – Network output.
y_true (torch.Tensor) – True values.
w (Optional[torch.Tensor]) – Optional sample weights.
- Returns:
Loss value.
- Return type:
torch.Tensor
- output_dim: int = None
- predict_func(outputs: ndarray) ndarray[source]
Return regression outputs as predictions.
- Parameters:
outputs (np.ndarray) – Network outputs.
- Returns:
Regression predictions.
- Return type:
np.ndarray
- prepare_target(y: ndarray) ndarray[source]
Return the input as target for regression.
- Parameters:
y (np.ndarray) – Target array.
- Returns:
Same as input.
- Return type:
np.ndarray
- set_fit_request(*, X_train: bool | None | str = '$UNCHANGED$', batch_size: bool | None | str = '$UNCHANGED$', callbacks: bool | None | str = '$UNCHANGED$', compute_importance: bool | None | str = '$UNCHANGED$', drop_last: bool | None | str = '$UNCHANGED$', eval_metric: bool | None | str = '$UNCHANGED$', eval_name: bool | None | str = '$UNCHANGED$', eval_set: bool | None | str = '$UNCHANGED$', from_unsupervised: bool | None | str = '$UNCHANGED$', loss_fn: bool | None | str = '$UNCHANGED$', max_epochs: bool | None | str = '$UNCHANGED$', num_workers: bool | None | str = '$UNCHANGED$', patience: bool | None | str = '$UNCHANGED$', pin_memory: bool | None | str = '$UNCHANGED$', virtual_batch_size: bool | None | str = '$UNCHANGED$', warm_start: bool | None | str = '$UNCHANGED$', weights: bool | None | str = '$UNCHANGED$', y_train: bool | None | str = '$UNCHANGED$') TabNetRegressor
Configure whether metadata should be requested to be passed to the
fitmethod.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(seesklearn.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 tofitif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it tofit.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:
X_train (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
X_trainparameter infit.batch_size (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
batch_sizeparameter infit.callbacks (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
callbacksparameter infit.compute_importance (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
compute_importanceparameter infit.drop_last (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
drop_lastparameter infit.eval_metric (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
eval_metricparameter infit.eval_name (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
eval_nameparameter infit.eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
eval_setparameter infit.from_unsupervised (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
from_unsupervisedparameter infit.loss_fn (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
loss_fnparameter infit.max_epochs (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
max_epochsparameter infit.num_workers (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
num_workersparameter infit.patience (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
patienceparameter infit.pin_memory (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
pin_memoryparameter infit.virtual_batch_size (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
virtual_batch_sizeparameter infit.warm_start (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
warm_startparameter infit.weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
weightsparameter infit.y_train (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for
y_trainparameter infit.
- Returns:
self – The updated object.
- Return type:
object
- stack_batches(list_y_true: List[Tensor], list_y_score: List[Tensor]) Tuple[Tensor, Tensor][source]
Stack batches of true and predicted values for regression.
- Parameters:
list_y_true (List[torch.Tensor]) – List of true values for each batch.
list_y_score (List[torch.Tensor]) – List of predicted values for each batch.
- Returns:
Stacked true values and predicted values.
- Return type:
Tuple[torch.Tensor, torch.Tensor]
- update_fit_params(X_train: ndarray, y_train: ndarray, eval_set: List[Tuple[ndarray, ndarray]], weights: bool | ndarray) None[source]
Update fit parameters for regression.
- Parameters:
X_train (np.ndarray) – Training data.
y_train (np.ndarray) – Training targets.
eval_set (list) – List of evaluation sets.
weights (bool or np.ndarray) – Sample weights.
- Raises:
ValueError – If y_train does not have 2 dimensions.
Example#
from pytorch_tabnet import TabNetRegressor
import numpy as np
X = np.random.rand(100, 10)
y = np.random.rand(100, 1)
reg = TabNetRegressor()
reg.fit(X_train=X, y_train=y)
preds = reg.predict(X)