The Libra machine learning toolkit includes implementations of a variety of algorithms for learning and inference with Bayesian networks (BNs), Markov networks (MNs), dependency networks (DNs), and arithmetic circuits (ACs). Libra stands for Learning and Inference in Bayesian networks, Random fields, and Arithmetic circuits.
Libra is the first open source machine learning toolkit to directly support BNs with decision tree conditional probability distributions (CPDs), dependency networks, Markov networks with sparse factors, or arithmetic circuits. (The WinMine Toolkit and Ace were partial inspirations for Libra and offer some overlapping functionality, but neither is open source.) Libra's strength is exploiting local structure such as context-specific independence and feature-based representations to allow richer structure, more compact models, and more efficient inference.
Libra is released under a modified BSD license.
An even more up-to-date development version can be obtained from the source code repository:
http://code.google.com/p/libra-tk/
Version 0.5.0 introduces Markov network weight learning, converting dependency networks to Markov networks (DN2MN), iterated conditional modes, and more. See the changelog for details.
All methods are implemented in OCaml, in order to obtain the best possible speed while keeping the code compact and easy to work with. To compile the source code, you must have a UNIX-like environment (Linux, OS X, Cygwin) with a recent version of OCaml installed.
For more information, see the documents below:
Older versions:
Learning algorithms:
Inference algorithms:
Utility methods: