Software Packages for Graphical Models / Bayesian Networks
Written by Kevin Murphy.
Last updated 28 July 2008.
Review articles
- Click here for a short article I wrote for the ISBA (International Society for Bayesian Analysis) Newsletter, December 2007
- Click here for a more detailed discussion of some of these packages written by Ann Nicholson and Kevin Korb in 2004.
- Click here for a French version of my comparison table (not necessarily up-to-date).
What do the headers in the table mean?
- Src = source code included? (N=no) If so, what language?
- API = application program interface included? (N means the program cannot be integrated into your code, i.e., it must be run as a standalone executable.)
- Exec = Executable runs on W = Windows (95/98/NT), U = Unix, M = Mac, or - = any machine with a compiler.
- Cts = are continuous (latent) nodes supported? G = (conditionally) Gaussians nodes supported analytically, Cs = continuous nodes supported by sampling, Cd = continuous nodes supported by discretization, Cx = continuous nodes supported by some unspecified method, D = only discrete nodes supported.
- GUI = Graphical User Interface included?
- Learns parameters?
- Learns structure? CI = means uses conditional independency tests
- Utility = utility and decision nodes (i.e., influence diagrams) supported?
- Free? 0 = free (although possibly only for academic use). $ = commercial software (although most have free versions which are restricted in various ways, e.g., the model size is limited, or models cannot be saved, or there is no API.)
- Undir? What kind of graphs are supported? U = only undirected graphs, D = only directed graphs, UD = both undirected and directed, CG = chain graphs (mixed directed/undirected).
- Inference = which inference algorithm is used? jtree = junction tree, varelim = variable (bucket) elimination, MH = Metropols Hastings, G = Gibbs sampling, IS = importance sampling, sampling = some other Monte Carlo method, polytree = Pearl's algorithm restricted to a graph with no cycles, VMP = variational message passing, EP = expectation propagation, SL = the program is designed for structure learning from completely observed data, not state estimation
- Comments. If in "quotes", I am quoting the authors at their request.
If you want your package to be listed, please send me email in the format specified here (use view source to see this properly).
Name | Authors | Src | API | Exec | Cts | GUI | Params | Struct | Utility | Free | Undir | Inference | Comments |
Agena | N | Y | W,U | Cx | Y | Y | N | N | $ | D | JTree | Simulation by Dynamic discretisation | |
Lumina | N | Y | W,M | G | Y | N | N | Y | $ | D | sampling | spread sheet compatible | |
Hartemink | Java | Y | W,U,M | Cd | N | N | Y | N | 0 | D | none | structure learning of static or dynamic networks of discrete variables | |
U. Helsinki | C++ | Y | U | G | N | Y | N | N | 0 | D | MH | Generates C++ for MCMC. (No longer maintained) | |
Nijman (U. Nijmegen) | N | N | W | D | Y | N | N | N | 0 | D | ? | - | |
Bayesia Ltd | N | N | - | Cd | Y | Y | Y | N | $ | CG | jtree,G | Structural learning, adaptive questionnaires, dynamic models | |
Bayesware | N | N | WUM | Cd | Y | Y | Y | N | $ | D | ? | Uses bound and collapse for learning with missing data. | |
U. Helsinki | N | N | WUM | Cd | Y | Y | Y | N | 0 | D | ? | Runs on their server: view results using a web browser. | |
Cheng (U.Alberta) | N | W | W | D | Y | Y | CI | N | 0 | D | ? | - | |
Helsinki | Python/C++ | Y | - | Y | N | Y | N | N | 0 | Dir | Variational | Non-Gaussian Latent variable models | |
Bonnowitz and Mansinghka | Java | Y | - | Y | N | Y | N | N | 0 | Fgraph | MCMC, SMC | General MC toolkit, also handles non-parametric Bayesian models | |
Murphy (U.C.Berkeley) | Matlab/C | Y | WUM | G | N | Y | Y | Y | 0 | D,U | Many | Also handles dynamic models, like HMMs and Kalman filters. | |
Hsu (Kansas) | Java | - | - | D | Y | N | Y | N | 0 | D | jtree, IS | - | |
frank rijmen | Matlab | - | - | D | N | N | N | N | 0 | D | jtree | Supports (ordinal) logistic regression CPDs and EM learning | |
MRC/Imperial College | N | N | WU | Cs | W | Y | N | N | 0 | D | Gibbs | - | |
Vanderbilt | N | N | W | - | - | N | Y | N | 0 | D | - | structure learning only | |
Badsberg (U. Aalborg) | C/lisp | Y | U | D | Y | Y | CI | N | 0 | U | Jtree | Designed for contingency tables. | |
Poole et al. (UBC) | Java | N | WU | D | Y | N | N | N | 0 | D | Varelim | - | |
Schmidt and Murphy | Matlab/C | Y | - | N | N | Y | N | N | 0 | U | Loopy BP | Conditional random fields, arbitrary structure | |
Roberts et al | Matlab | - | - | Y | N | Y | N | N | Y | D | Various | DBNs | |
Bottcher et al | R | - | - | G | Y | Y | Y | N | 0 | D | None | Structure learning. | |
DeriveIt LLC | N | - | - | ? | ? | Y | Y | ? | $ | D | Jtree, Gibbs | Exploits local structure in CPDs. | |
Elvira consortium (Spain) | Java | Y | W,U,M | Cd,Cx | Y | Y | Y | Y | 0 | D | JTree,varelim,IS | "Also includes classification, abductive inference and model fusion" | |
Noetic systems | N | Y | W,M | D | Y | N | N | N | $ |