Banjo 2.0.1

Category Intelligent Software>Bayesian Network Systems/Tools

Abstract Banjo (Bayesian Network Inference with Java Objects) is a software application and framework for structure learning of static and dynamic Bayesian networks, developed under the direction of Alexander J. Hartemink in the Department of Computer Science at Duke University.

Banjo was designed from the ground up to provide efficient structure inference when analyzing large, research-oriented data sets, while at the same time being accessible enough for students and researchers to explore and experiment with the algorithms.

Because it is implemented in Java, the framework is easy to maintain and extend.

Banjo focuses on score-based structure inference (for inference within a Bayesian network of known structure, a plethora of code already exists).

Available heuristic search strategies include simulated annealing and greedy hill-climbing, paired with evaluation of a single random local move or all local moves at each step.

A search algorithm in Banjo is assembled as a set of core components for handling various subtasks:

1) Proposing a new network (or networks), handled by a “proposer” component.

2) Checking the proposed network(s) for cycles, handled by a “cycle checker” component.

3) Computing the score(s) of the proposed network(s), handled by an “evaluator” component.

4) Deciding whether to accept a proposed network, handled by a “decider” component.

These core components are organized and implemented in such a way that they can be used to study or extend the search algorithms themselves: a set of expandable statistics is provided for monitoring the actual search process.

The core algorithms assume and have been optimized for discrete variables, but if some of your variables are continuous, the current version of Banjo provides simple discretization functionality using either quantile or interval discretization methods.

Any number of highest scoring networks can be retained in the search, and the highest can be processed by Banjo to compute influence scores on the edges, or to generate a file formatted for rendering with 'dot' (makes ``hierarchical'' or layered drawings of directed graphs), developed by AT&T.

New features in Version 2 of Banjo --

1) Consensus graph for n-best networks.

2) Equivalence comparison for n-best networks (with statistics).

3) Output of dot files (top and consensus graphs), and automatic execution of dot to generate graphics files (in user-specified formats).

4) Stopping criteria can be based on any combination of time, networks, and restarts. The first criterion to be satisfied will cause the search to stop.

5) User can specify labels for the variables. These labels will be used for dot output.

6) Additional functionality is now under user control via the settings file, with default values for unspecified settings. This includes various post- processing options such as createDotOutput, computeInfluenceScores, and computeConsensusGraph.

7) Input of time values can now we done in 3 valid ways: a single number (interpreted as seconds), a single number with a time qualifier (e.g., h for hour), or in the colon-delimited format that was used in the past.

8) The feedback of results has been streamlined via the new fileReportingInterval and screenReportingInterval settings, which are being specified as time values. The feedback display itself is more uniform and informative.

9) For keeping results organized, a time stamp can be embedded in the names of output files.

10) Users with large data sets may appreciate the settings-based control over the internal caching mechanism, as well as the optional memory usage information.

Should Banjo run out of memory, it now exits gracefully with a final report on memory use and a listing of the results obtained before running out of memory.

11) And when things don’t go as expected, a new setting tells Banjo to display the stack trace in run time mode, to provide the maximum amount of information in case of an internal problem or bug.

System Requirements

Banjo should run on any computer with a recent Java virtual machine (JVM). It has been written to comply with the 1.4.2 release of Java 2 (or newer). We have successfully run Banjo on computers running Macintosh OS X, Red Hat Linux, Sun Solaris, and Microsoft Windows (98, 2000, and XP), with at least 256MB of memory. If your computer does not have a JVM installed, you can download one for free for your operating system from as part of the Java Runtime Environment (JRE).

Banjo code should be modifiable within any Java development environment, from simple text editor to full-featured IDE. We use the open source Eclipse IDE to develop Banjo. To get you started, the Banjo Developer Guide, available on the documentation page, includes a brief tutorial on modifying Banjo within the Eclipse IDE, version 3.0. If your computer does not have a Java Development Kit (JDK), you can download one for free for your operating system from or, if you prefer the 1.4.2 release.


Manufacturer Web Site Banjo 2.0.1

Price Contact manufacturer.

G6G Abstract Number 20211

G6G Manufacturer Number 100851