Software Packages for Graphical Models / Bayesian Networks Written by Kevin Murphy. Last updated 31 October 2005. Remarks * A much more detailed comparison of some of these software packages is available from Appendix B of Bayesian AI, by Ann Nicholson and Kevin Korb. This appendix is available here, and is based on the online comparison below. * An online French version of this page is also available (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, none = no inference supported (hence the program is only designed for structure learning from completely observed data) * Comments. If in "quotes", I am quoting the authors at their request. Name Authors Src API Exec Cts GUI Params Struct Utility Free Undir Inference Comments AgenaRisk Agena N Y W,U Cx Y Y N N $ D JTree Simulation by Dynamic discretisation Analytica Lumina N Y W,M G Y N N Y $ D sampling spread sheet compatible Banjo Hartemink Java Y W,U,M Cd N N Y N 0 D none structure learning of static or dynamic networks of discrete variables Bassist U. Helsinki C++ Y U G N Y N N 0 D MH Generates C++ for MCMC. Bayda U. Helsinki Java Y WUM G Y Y N N 0 D ? Bayesian Naive Bayes classifier. BayesBuilder Nijman (U. Nijmegen) N N W D Y N N N 0 D ? - BayesiaLab Bayesia Ltd N N - Cd Y Y Y N $ CG jtree,G Structural learning, adaptive questionnaires, dynamic models Bayesware Discoverer Bayesware N N WUM Cd Y Y Y N $ D ? Uses bound and collapse for learning with missing data. B-course U. Helsinki N N WUM Cd Y Y Y N 0 D ? Runs on their server: view results using a web browser. Belief net power constructor Cheng (U.Alberta) N W W D Y Y CI N 0 D ? - BNT 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. BNJ Hsu (Kansas) Java - - D Y N Y N 0 D jtree, IS - BucketElim Rish (U.C.Irvine) C++ Y WU D N N N N 0 D Varelim - BUGS MRC/Imperial College N N WU Cs W Y N N 0 D Gibbs - Business Navigator 5 Data Digest Corp N N W Cd Y Y Y N $ D Jtree - CABeN Cousins et al. (Wash. U.) C Y WU D N N N N 0 D 5 Sampling methods - Causal discoverer Vanderbilt N N W - - N Y N 0 D - structure learning only CoCo+Xlisp Badsberg (U. Aalborg) C/lisp Y U D Y Y CI N 0 U Jtree Designed for contingency tables. CIspace Poole et al. (UBC) Java N WU D Y N N N 0 D Varelim - DBNbox Roberts et al Matlab - - Y N Y N N Y D Various DBNs Deal Bottcher et al R - - G Y Y Y N 0 D None Structure learning. DeriveIt DeriveIt LLC N - - ? ? Y Y ? $ D Jtree Exploits local structure in CPDs. Ergo Noetic systems N Y W,M D Y N N N $ D jtree - GDAGsim Wilkinson (U. Newcastle) C Y WUM G N N N N 0 D Exact Bayesian analysis of large linear Gaussian directed models. Genie U. Pittsburgh N WU WU D W N N Y 0 D Jtree - GMRFsim Rue (U. Trondheim) C Y WUM G N N N N 0 U MCMC Bayesian analysis of large linear Gaussian undirected models. GMTk Bilmes (UW), Zweig (IBM) N Y U D N Y Y N 0 D Jtree Designed for speech recognition. gR Lauritzen et al. R - - - - - - - 0 - - Currently vaporware Grappa Green (Bristol) R - - D N N) N N 0 D Jtree - Hugin Expert Hugin N Y W G W Y CI Y $ CG Jtree - Hydra Warnes (U.Wash.) Java - - Cs Y Y N N 0 U,D MCMC - Ideal Rockwell Lisp Y WUM D Y N N Y 0 D Jtree GUI requires Allegro Lisp. Java Bayes Cozman (CMU) Java Y WUM D Y N N Y 0 D Varelim, jtree - KBaseAI Codeas N Y W,U D N N N N $ D varelim client/server architecture, multiple users, access control, query language LibB Friedman (Hebrew U) N Y W D N Y Y N 0 D none Structure learning MIM HyperGraph Software N N W G Y Y Y N $ CG Jtree Up to 52 variables. MSBNx Microsoft N Y W D W N N Y 0 D Jtree - Netica Norsys N WUM W G W Y N Y $ D jtree - Optimal Reinsertion Moore, Wong (CMU) N N W,U D N Y Y N 0 D none structure learning PMT Pavlovic (BU) Matlab/C - - D N Y N N 0 D special purpose - PNL Eruhimov (Intel) C++ - - D N Y Y N 0 U,D Jtree A C++ version of BNT; will be released 12/03. Pulcinella IRIDIA Lisp Y WUM D Y N N N 0 D ? Uses valuation systems for non-probabilistic calculi. RISO Dodier (U.Colorado) Java Y WUM G Y N N N 0 D Polytree Distributed implementation. Sam Iam Darwiche (UCLA) N N ? WU ? (Java executable) G ? Y Y N ? Y 0 D Recursive conditioning Also does sensitivity Analysis Tetrad CMU N N WU G N Y CI N 0 U,D None - UnBBayes ? Java - - D Y N Y N 0 D jtree K2 for struct learning Vibes Winn & Bishop (U. Cambridge) Java Y WU Cx Y Y N N 0 D Variational Not yet available. Web Weaver Xiang (U.Regina) Java Y WUM D Y N N Y 0 D ? - WinMine Microsoft N N W Cx Y Y Y N 0 U,D None Learns BN or dependency net structure. XBAIES 2.0 Cowell (City U.) N N W G Y Y N Y 0 CG Jtree - Other sites related to (software for) graphical models * Google's list of Bayes net software. * Comparison of decision analysis software packages by Håkan L. Younes. The emphasis is on real-time decision making. * Older belief net programs (c 1996), a list created (but no longer maintained) by Russ Almond. * Repository of Bayes nets.