Skip to main content

NimbusProbit — Bayesian Multinomial Probit Regression

Julia: NimbusProbit | Python equivalent: NimbusSoftmax
Mathematical model: Bayesian multinomial probit regression
NimbusProbit is the Julia SDK’s flexible non-Gaussian static classifier. Compared with Gaussian models (NimbusLDA, NimbusQDA), it can represent more complex decision boundaries while still returning posterior probabilities and uncertainty metrics.
Availability
  • Julia SDK: ✅ NimbusProbit
  • Python SDK: ❌ Use NimbusSoftmax for Python’s non-Gaussian static classifier

Quick Start

When to Use NimbusProbit

  • You are using the Julia SDK and need a flexible static classifier.
  • NimbusLDA / NimbusQDA plateau on complex multi-class data.
  • Class boundaries are non-Gaussian or not well modeled by class-conditional Gaussians.
  • You need calibrated posterior probabilities from a probabilistic model.

When Not to Use It

  • If latency must be minimized: start with NimbusLDA, then NimbusQDA.
  • If class centers and Mahalanobis distance are important: use NimbusLDA or NimbusQDA.
  • If the task is non-stationary or drifting: use NimbusSTS in the Python SDK.
  • If you are using Python: use NimbusSoftmax.

Model Architecture

NimbusProbit is implemented with RxInfer and models a latent multinomial probit representation.

RxInfer Learning Model

The public API hides the factor-graph details behind train_model() and predict_batch().

Hyperparameters

Train a Custom Model

Tune Hyperparameters

Use stronger priors for noisy or limited data, and weaker priors for clean datasets with many trials.

Batch Inference

Streaming Inference

Training Requirements

  • Use preprocessed features, not raw EEG.
  • Normalize features before training for cross-session stability.
  • Use enough trials for a flexible multinomial model; start with NimbusLDA / NimbusQDA for small datasets.
  • Keep labels aligned with the Julia SDK’s class convention for the dataset you are using.

Model Inspection

Model Selection Context

Use NimbusProbit when you are in Julia and need a flexible non-Gaussian static classifier. If you need faster inference or explicit class-center diagnostics, start with NimbusLDA or NimbusQDA. If you are using Python, the analogous non-Gaussian static model is NimbusSoftmax. For the canonical side-by-side comparison, see Model Specification.

Next Read

NimbusSoftmax (Python)

Python’s non-Gaussian static classifier.

Julia SDK API Reference

Full Julia model and inference API.

Bayesian LDA

Faster static model with shared covariance.

Bayesian QDA

Static model with class-specific covariance.

References

Implementation: Theory:
  • Bayesian multinomial probit regression
  • Variational inference with reactive message passing
  • Continuous-transition latent variable models for multinomial classification