Bayesian Models
v0.1.7Uncertainty-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
python
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)
| Model | Notes |
|---|---|
| BayesianRidgeRegression | Regularized linear regression with posterior estimates; predict_interval available |
| ARDRegression | Automatic Relevance Determination — sparse coefficients |
| GaussianProcessRegressor | Non-parametric with calibrated uncertainty |
| GaussianProcessClassifier | Probabilistic classification |
| MultinomialNB / BernoulliNB / ComplementNB | Naive Bayes family for counts, binary and imbalanced text data |
| PyMCLinearRegression | Full Bayesian inference via MCMC (requires synaptix[bayes]) |
| PyMCLogisticRegression | Bayesian logistic regression via PyMC (requires synaptix[bayes]) |
PyMC Models
The PyMC models run full MCMC sampling and require the bayes extra:
bash + python
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)