Bayes Net Toolbox for Matlab

Written by Kevin Murphy.
Last updated on 28 July 2002 (Detailed changelog)

You are visitor number since 5/22/00. FastCounter by bCentral

Matlab logo
Click to subscribe to the BNT email list

( http://groups.yahoo.com/group/BayesNetToolbox)

Major features

Supported probabilistic models

It is trivial to implement all of the following probabilistic models using the toolbox.

Future work

I have a long wish list of features I would like to add to BNT at some point in the future. Please email me (murphyk@cs.berkeley.edu) if you are interested in contributing!

Why do I give the code away?

Why Matlab?

Matlab is an interactive, matrix-oriented programming language that enables one to express one's (mathematical) ideas very concisely and directly, without having to worry about annoying details like memory allocation or type checking. This considerably reduces development time and keeps code short, readable and fully portable. Matlab has excellent built-in support for many data analysis and visualization routines. In addition, there are many useful toolboxes, e.g., for neural networks, signal and image processing. The main disadvantages of Matlab are that it can be slow (which is why we are currently rewriting parts of BNT in C), and that the commercial license is expensive (although the student version is only $100 in the US).

Matlab is popular in the engineering community, R/S/Splus in the statistics community, Mathematica in the math community, and Gauss in the econometrics community. These languages are all basically the same. (Matlab/Maple and Mathematica are the only ones capable of symbolic, as well as numerical, calculations.) I chose Matlab because that's what I'm most familiar with. (See this comparison of interactive scientific programming environments.)

Many people ask me why I did not use Octave, an open-source Matlab clone. The reason is that Octave only implements the functionality of Matlab 4 (and only a subset at that), whereas BNT needs a lot of the functionality of Matlab 5, such as multi-dimensional arrays, cell arrays, objects, etc. Basically, Matlab 4 is just a linear algebra (plus graphics) package, whereas Matlab 5 is a fully fledged programming language.

Acknowledgments

I would like to thank numerous people for bug fixes, including: Rainer Deventer, Michael Robert James, Philippe Leray, Pedrito Maynard-Reid II, Andrew Ng, Ron Parr, Ilya Shpitser, Xuejing Sun, Ursula Sondhauss.

I would like to thank the following people for contributing code: Pierpaolo Brutti, Ali Taylan Cemgil, Tamar Kushnir, Ken Shan, Yair Weiss, Ron Zohar.

The following Intel employees have also contributed code: Qian Diao, Shan Huang, Yimin Zhang and especially Wei Hu.

I would like to thank Stuart Russell for funding me over the years as I developed BNT, and Gary Bradksi for hiring me as an intern at Intel, which has supported much of the recent developments of BNT.