Personal tools
You are here: Home
Log in


Forgot your password?
 

Open Bayes for Python

Welcome to Open Bayes!

OpenBayes Development has stopped since about a year!

Hi, my name is Kosta and I started developping OpenBayes back in 2004. The project went well for a while but then the demands for new features and correcting bugs started taking more and more of my time. It eventually became very difficult to keep up with this project and so I decided to stop working on it. Until when you ask? Well, until I find enough people willing to participate actively in designing and developping OpenBayes and make it pass to version 0.2 (as announced).

So If you are interested in developping OpenBayes, have experience with python and Bayesian Networks, then this is the right place to be! Contact me and we'll see what we can do.


Let's create a true open-source platform for probabilistic calculations that will meet the demands of many reseachers (and not only) around the world!


What is Open Bayes?

Open Bayes for Python is a free and open source Bayesian Network library. Currently it is in its first release. It supports static bayesian networks with discrete and/or continuous distributions, exact and approximate inference algorithms and some basic learning algorithms.
This library is meant to be used by anyone who would like to use Bayesian Networks into their work and do not have special knowledge in programming nor in the underlying probabilistic algorithms.

Where did Open Bayes come from ?

The original idea was developed by Richard Dybowski and Kevin Murphy and the main goal was to transfer the existing BNT package for MatLAB into a real programming language (such as C++ or R) in order to make it faster and more portable. During the OpenBayes meetings they managed to set a list of specifications that any OpenSource probabilistic library should meet in order to be easy to use, portable and fast. Although the idea was great, the project was unfortunately left over...

Any researcher that has tried to use Bayesian Networks in his work and is not an expert in C++ must have noticed how painful it is to create even small bayesian networks from scratch and then perform generic calculations in it. Our idea was to continue the OpenBayes project but instead of using a difficult programming language (such as C++), we decided to create a whole new package in Python that has the advantages of being easy to learn, easy to use and much faster than MatLAB (although a little bit slower than C++).

Under which License is OpenBayes distributed ?

OpenBayes is distributed under the GNU - Lesser General Public License (LGPL, see the LICENSE.TXT file inside the OpenBayes directory). This means that OpenBayes will always be OpenSource but can be used inside proprietary products, under the condition that OpenBayes source code (and any new modifications) remain OpenSource and available to the public.

http://www.gnu.org/licenses/lgpl.html


Why Python ?

Python is a relatively modern programming language that has several attracting features :

  • Full Object Oriented
  • Easily interfaced with other programming languages
  • Fast (not as fast as C, but much faster than other high-level programming languages)


What do you need to use Open Bayes ?

  • Python 2.4 (or Higher)
  • Numarray 1.3.3 (or Higher, it may very well work on lower versions, but it was tested with this version. Plans are to switch to NumPy this year)


Future Version Planning:

Future Version planning


General Bayesian Network Info:

There is a ton of information on this topic. For a very good description please see

  • Artificial Intelligence: A Modern Approach (Russell and Norvig, 2nd edition 2003)

For a description of the Junction Tree algorithm used above please see

  • Inference in Belief Networks: A Procedural Guide (A. Darwiche, C. Huang 1996)


Document Actions