Rust implementation of PyMC-BART. PyMC-BART extends the PyMC probabilistic programming framework to be able to define and solve models including a Bayesian Additive Regression Tree (BART) random variable. PyMC-BART also includes a few helpers function to aid with the interpretation of those models and perform variable selection.
PyMC-BART is available on PyPI with pre-built wheels for Linux (x86_64, aarch64), Windows (x64), and macOS (x86_64, aarch64). To install using pip
pip install pymc-bart-rs
Get started by using PyMC-BART to set up a BART model
import pymc as pm
import pymc_bart as pmb
X, y = ... # Your data replaces "..."
with pm.Model() as model:
bart = pmb.BART('bart', X, y)
...
idata = pm.sample()
The core Particle Gibbs (PG) sampling algorithm for BART remains the same in this Rust implementation as the original Python implementation. What differs is the choice of data structure to represent the Binary Decision Tree.
A DecisionTree
structure is implemented as a number of parallel arrays. The i-th element of each array holds information about node i
. The zero'th node is the tree's root. Some of the arrays only apply to either leaves or split nodes. In this case, the values of the nodes of the other arrays are arbitrary. For example, feature
and threshold
arrays only apply to split nodes. The values for leaf nodes in these arrays are therefore arbitrary.