Skip to content

Particle Gibbs sampler for Bayesian additive regression trees (BART) in Rust.

Notifications You must be signed in to change notification settings

GStechschulte/bart-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyMC-BART-rs

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.

Table of Contents

Installation

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

Usage

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()

Modifications

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.

About

Particle Gibbs sampler for Bayesian additive regression trees (BART) in Rust.

Resources

Stars

Watchers

Forks

Packages

No packages published