Netica’s Probabilistic Inference

Netica uses the fastest known algorithm for exact general probabilistic inference in a compiled Bayes net, which is message passing in a junction tree (or “join tree”) of cliques.  The algorithms used are described in Spiegelhalter&DLC93, Jensen96 and Neapolitan90.

In this process, Netica first compiles the Bayes net into a junction tree.  The junction tree is implemented as a complex set of data structures connected up with the original Bayes net, but invisible to you as a user of Netica.  You enter findings for one or more nodes of the original Bayes net, and then when you want to know the resultant beliefs for some of the other nodes, deterministic updating and then belief updating is done by a message-passing algorithm operating on the underlying junction tree.

It determines the resultant beliefs for each of the nodes of the original Bayes net, which it displays as a bar graph, or a needle meter, at each node.  You may then enter some more findings (to be added to the first), or remove some findings, and when you request the resultant beliefs, belief updating will be performed again to take the new findings into account.

Netica can also do probabilistic inference by link reversals and node absorption, but those are mainly meant for transforming a net and doing model exploration, and are usually not as fast or as convenient for general probabilistic inference as the compiled junction trees described above.