ProBT

Abstract

ProBT is an advanced modeling, inference, and learning platform. It extends the Bayesian Networks framework by providing a structured programming language allowing the developers to increase their applications capabilities and robustness by integrating Bayesian models.

Major features

  • ProBT supports both discrete and continuous variables and provides many types of distributions:
    • Probability table (aka tabular/multinomial)
    • Deterministic (aka Dirac)
    • Binomial
    • Poisson
    • Noisy-OR
    • Softmax (aka logistic/sigmoid)
    • Beta
    • Dirichlet
    • Exponential
    • Gamma
    • Linear Regression (aka Linear Gaussian)
    • Log-Normal
    • Normal (aka Gaussian) on univariate and multivariate variables
    • Weibull
    • Von Mises
  • ProBT provides parameter learning algorithms for all the supported (builtin) distributions above:
    • Maximum Likelihood estimators
    • Bayesian (Maximum A Posteriori) estimators using conjugate priors when available
    • Expectation-Maximization (EM) allowing to handle both missing values and latent variables. It uses the distribution estimators above (ML and MAP) for the M step and the inference algorithms (below) for the E step.
  • ProBT provides structure learning algorithms:
    • Score-based structure leaning (MI, BIC, MDL, AIC, ...)
  • ProBT provides several exact inference algorithms:
    • Junction Tree
    • Successive Restrictions (a sophisticated variant of Variable Elimination) with support for using soft evidences
    • Forwards-backwards/Viterbi for Hidden Markov Models (HMMs)
  • ProBT provides approximate inference functionalities:
    • Direct sampling functions for all the supported (builtin) distributions
    • Forward and MCMC Metropolis sampling methods for the inferred probability expressions
    • Sophisticated Genetic Algorithms for sampling and maximizing the inferred probability expressions
    • Approximate compact numerical representation of probability distributions
  • ProBT provides a set of ready-to-use dynamic models:
    • Dynamic Bayesian Networks
    • HMM (Hidden Markov Model)
    • Kalman, extended Kalman, and Unscented Kalman filters
    • Particle filters
  • ProBT provides basic linear algebra functionalities such as:
    • Matrix/vector multiplication, addition,...
    • Matrix inversion/pseudo-inversion, eigen-decomposition,...
  • ProBT provides basic data pre-processing functionalities such as:
    • Principal Component Analysis (PCA)
    • K-means clustering
  • ProBT allows using external user functions as callbacks for computing distribution parameters. It accepts:
    • C++ member and non-member user functions
    • Python and C# functions when using the corresponding bindings
    • C source code functions compiled using an embedded lightweight C complier (TCC)
  • ProBT provides serialization support of all the used classes:
    • Serialization into a file or a memory buffer.
  • ProBT provides flexible and easy-to-use interfaces:
    • C++, C#, Python, and Java APIs
    • Excel plugin
    • C# shell
  • ProBT provides basic import/export functionalities from/to several known Bayesian Network formats:
    • Genie (xdsl)
    • Netica (dne)
    • Hugin (net)
  • ProBT accepts several data sources:
    • CSV
    • ODBC
    • MYSQL
  • ProBT is highly portable and is available on the following platforms:
    • Windows
    • Linux
    • MacOS
    • iOS
    • Android

Liste de diffusion

Vous pouvez vous inscrire à (ou vous désinscrire de) la liste de diffusion probt-users@probayes.com en utilisant la formulaire ci-dessous.