# it shows how to build a tree with probabilities
from bayesnet.jayes import BayesNode,BayesNet
from bayesnet.jayes.inference.jtree import JunctionTreeAlgorithm
from java.util import *
net = BayesNet();
a = net.createNode("a");
a.addOutcomes("true", "false");
a.setProbabilities(0.2, 0.8);
b = net.createNode("b");
b.addOutcomes("one", "two", "three");
b.setParents(Arrays.asList(a));
b.setProbabilities(
0.1, 0.4, 0.5, # a == true
0.3, 0.4, 0.3, # a == false
);
c=net.createNode("c");
c.addOutcomes("true", "false");
c.setParents(Arrays.asList(a, b));
c.setProbabilities(
# a == true
0.1, 0.9, # b == one
0.0, 1.0, # b == two
0.5, 0.5, # b == three
# a == false
0.2, 0.8, # b == one
0.0, 1.0, # b == two
0.7, 0.3, # b == three
)
inferer=JunctionTreeAlgorithm()
inferer.setNetwork(net)
evidence = HashMap()
evidence.put(a, "false");
evidence.put(b, "three");
inferer.setEvidence(evidence);
beliefsC = inferer.getBeliefs(c);
print "P(c | a = false, b =three)=",beliefsC.tolist()
Ads help maintain this website.