SynaptIX logoSynaptIX

Bayesian Models

v0.1.7

Uncertainty-aware models: Bayesian ridge, ARD, Gaussian processes, Naive Bayes variants and full PyMC models with prediction intervals — new in v0.1.7.

Models with Prediction Intervals

intervals.py
import synaptix as sx
import pandas as pd

# Data with noise
df = pd.DataFrame({"x": range(60)}, dtype=float)
df["y"] = 0.8 * df["x"] + 5 + pd.Series(
    __import__("numpy").random.default_rng(1).normal(0, 4, 60)
)

model = sx.supervised.BayesianRidgeRegression()
model.fit(df[["x"]], df["y"])

mean, low, high = model.predict_interval(df[["x"]], alpha=0.05)
print("First 3 predictions with 95% intervals:")
for m, lo, hi in zip(mean[:3], low[:3], high[:3]):
    print(f"  {m:.2f}  [{lo:.2f}, {hi:.2f}]")

The bayesian regressors (BayesianRidgeRegression, ARDRegression, GaussianProcessRegressor) expose predict_interval(mean, low, high).

Available Models (9)

ModelNotes
BayesianRidgeRegressionRegularized linear regression with posterior estimates; predict_interval available
ARDRegressionAutomatic Relevance Determination — sparse coefficients
GaussianProcessRegressorNon-parametric with calibrated uncertainty
GaussianProcessClassifierProbabilistic classification
MultinomialNB / BernoulliNB / ComplementNBNaive Bayes family for counts, binary and imbalanced text data
PyMCLinearRegressionFull Bayesian inference via MCMC (requires synaptix[bayes])
PyMCLogisticRegressionBayesian logistic regression via PyMC (requires synaptix[bayes])

PyMC Models

The PyMC models run full MCMC sampling and require the bayes extra:

bash + python
pip install 'synaptix[bayes]'

import synaptix as sx

model = sx.supervised.PyMCLinearRegression()
model.fit(X_train, y_train, draws=1000)
summary = model.summary()          # MCMC diagnostics
mean, low, high = model.predict_interval(X_test)