Skip to main content

BARTRegression

Model
DashAI.back.models.pymc.BARTRegression

Bayesian Additive Regression Trees regressor.

BART represents the regression function as a sum of m regression trees. A regularising prior keeps each tree shallow so that it acts as a weak learner, and the posterior distribution over the whole ensemble is explored with an MCMC sampler (Particle Gibbs for the trees). Predictions are the posterior mean of the sum-of-trees function, and the sampled posterior also provides a natural quantification of predictive uncertainty.

Key hyperparameters are the number of trees m and the tree-structure prior parameters alpha and beta, together with the MCMC controls draws, tune and chains. The implementation wraps pymc-bart.

References

Parameters

m : integer, default=50
The number of trees in the sum-of-trees ensemble.
alpha : number, default=0.95
Base of the tree-depth prior; the probability that a node at depth d is non-terminal is alpha * (1 + d) ** (-beta). Must be in (0, 1).
beta : number, default=2.0
Exponent of the tree-depth prior; larger values penalise deep trees more strongly. Must be positive.
response : string, default=constant
How leaf-node values are computed. 'constant' is recommended; 'linear' and 'mix' are experimental.
draws : integer, default=200
Number of posterior samples drawn per chain.
tune : integer, default=200
Number of tuning (burn-in) iterations per chain, discarded.
chains : integer, default=1
Number of independent MCMC chains to run.
random_seed, default=0
Seed for the sampler and prediction RNG, for reproducibility.

Methods

calculate_metrics(self, split: DashAI.back.core.enums.metrics.SplitEnum = <SplitEnum.VALIDATION: 'validation'>, level: DashAI.back.core.enums.metrics.LevelEnum = <LevelEnum.LAST: 'last'>, log_index: int = None, x_data: 'DashAIDataset' = None, y_data: 'DashAIDataset' = None)

Defined on BaseModel

Calculate and save metrics for a given data split and level.

Parameters

split : SplitEnum
The data split to evaluate (TRAIN, VALIDATION, or TEST). Defaults to SplitEnum.VALIDATION.
level : LevelEnum
The metric granularity level (LAST, TRIAL, STEP, or BATCH). Defaults to LevelEnum.LAST.
log_index : int, optional
Explicit step index for the metric entry. If None, the next step index is computed automatically. Defaults to None.
x_data : DashAIDataset, optional
Input features. If None, the dataset stored in the model for the given split is used. Defaults to None.
y_data : DashAIDataset, optional
Target labels. If None, the labels stored in the model for the given split are used. Defaults to None.

fit(self, x, y) -> 'PyMCBARTRegressor'

Defined on PyMCBARTRegressor

Sample the BART posterior for the regression of y on x.

Parameters

x : array-like of shape (n_samples, n_features)
Training covariates.
y : array-like of shape (n_samples,)
Training targets.

Returns

PyMCBARTRegressor
The fitted estimator.

get_metadata(cls) -> Dict[str, Any]

Defined on BaseModel

Get metadata values for the current model.

Returns

Dict[str, Any]
Dictionary containing UI metadata such as the model icon used in the DashAI frontend.

get_schema(cls) -> dict

Defined on ConfigObject

Generates the component related Json Schema.

Returns

dict
Dictionary representing the Json Schema of the component.

load(filename: str) -> None

Defined on SklearnLikeModel

Deserialise a model from disk using joblib.

Parameters

filename : str
Path to the file previously written by :meth:save.

Returns

SklearnLikeModel
The loaded model instance.

predict(self, x_pred: 'DashAIDataset') -> 'ndarray'

Defined on SklearnLikeRegressor

Make a prediction with the model.

Parameters

x_pred : DashAIDataset
Dataset with the input data columns.

Returns

np.ndarray
Array with the predicted target values for x_pred

prepare_dataset(self, dataset: 'DashAIDataset', is_fit: bool = False) -> 'DashAIDataset'

Defined on CategoricalEncoderMixin

Encode categorical feature columns into a numeric representation.

Parameters

dataset : DashAIDataset
The input dataset to preprocess.
is_fit : bool
If True, fit the encoders on the data. If False, apply previously fitted encoders. Defaults to False.

Returns

DashAIDataset
The dataset with categorical columns converted to numeric columns.

prepare_output(self, dataset: 'DashAIDataset', is_fit: bool = False) -> 'DashAIDataset'

Defined on CategoricalEncoderMixin

Prepare output targets using label encoding.

Parameters

dataset : DashAIDataset
The output dataset to be transformed.
is_fit : bool, optional
If True, fit the encoder. If False, use existing encodings.

Returns

DashAIDataset
Dataset with categorical columns converted to integers.

save(self, filename: str) -> None

Defined on SklearnLikeModel

Serialise the model to disk using joblib.

Parameters

filename : str
Destination file path where the model will be written.

train(self, x_train, y_train, x_validation=None, y_validation=None)

Defined on SklearnLikeModel

Train the sklearn model on the provided dataset.

Parameters

x_train : DashAIDataset
The input features for training.
y_train : DashAIDataset
The target labels for training.
x_validation : DashAIDataset, optional
Validation input features (unused in sklearn models). Defaults to None.
y_validation : DashAIDataset, optional
Validation target labels (unused in sklearn models). Defaults to None.

Returns

BaseModel
The fitted scikit-learn estimator (self).

validate_and_transform(self, raw_data: dict) -> dict

Defined on ConfigObject

It takes the data given by the user to initialize the model and returns it with all the objects that the model needs to work.

Parameters

raw_data : dict
A dictionary with the data provided by the user to initialize the model.

Returns

dict
A validated dictionary with the necessary objects.

Compatible with