BNJ stands for Bayesian Network tools in JAVA. It is an open-source software development toolkit for research in probabilistic learning and inference using Bayesian networks. BNJ is developed by the probabilistic reasoning group of KDD Lab in the Computing and Information Sciences (CIS) Department at Kansas State University. The release of BNJ is governed by the GNU Public License.
A Bayesian network, or Bayesian belief network (BBN), is a concise representation of a joint probability distribution defined on a finite set of random variables. It is a directed acyclic graph (DAG) in which nodes represent random variables and arcs represent probabilistic dependencies among the variables. A conditional probability distribution is associated with each node and describes the dependency between the node and its parents. The networks are most often used in expert systems that reason under uncertainty.
There are two main research problems in probabilistic reasoning using Bayesian networks: learning and inference. Learning the Bayesian network from data is automatically constructing the network from data using some learning algorithms such as K2. Bayesian network inference involves computing the posterior marginal probabilities of some query nodes, P(Q|E), and computing the most probable explanation (MPE) given the values of some observed query nodes. Both Bayesian network learning and inference have been proven to be NP-hard in general.
BNJ aims to provide researchers and developers with a useful toolkit for Bayesian network representation, learning, and inference. Several popular Bayesian network learning and inference algorithms have been implmented and included into BNJ. The first release consists of some core classes for representing main data structures, a graphical Bayesian network editor for loading and manipulating the network, the learning algorithm K2, an exact inference algorithm (the clique-tree propagation algorithm by Lauritzen and Spiegelhalter, 1988), several stochastic sampling algorithms, and some other useful utilities including a network format converter, a data generator to simulate the network, and a simple DAG layout method.