SnapBoost Documentation

SnapBoost is an instance of a heterogeneous Newton boosting machine that mixes decision trees and random Fourier feature (RFF) ridge regressors. SnapBoost is scikit-learn compatible and built on HNBM.

At each boosting round, SnapBoost stochastically selects either a decision tree or an RFF ridge regressor. That mix captures both local, axis-aligned structure and smooth global patterns.

Key properties:

  • Scikit-learn API (fit / predict / score)

  • Classification and regression estimators

  • Heterogeneous base learners (trees + RFF ridge)

  • Built on the HNBM framework

Inspired by SnapBoost: A Heterogeneous Boosting Machine (Parnell et al., NeurIPS 2020).

pip install snapboost
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from snapboost import SnapBoostClassifier

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

model = SnapBoostClassifier(num_iterations=100, learning_rate=0.1, random_state=42)
model.fit(X_train, y_train)
print("Accuracy:", model.score(X_test, y_test))