# 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.4, 0.6)
b = net.createNode("b")
b.addOutcomes("true", "false")
b.setParents(Arrays.asList(a))
b.setProbabilities(
0.55, 0.45, # a=true
0.45, 0.55) # a=false
c=net.createNode("c")
c.addOutcomes("true", "false")
c.setParents(Arrays.asList(a))
c.setProbabilities(
0.55, 0.45, # a=true
0.45, 0.55) # b=false
d = net.createNode("d")
d.addOutcomes("true", "false")
d.setParents(Arrays.asList(a))
d.setProbabilities(
0.55, 0.45, # a=true
0.45, 0.55) # b=false
inferer=JunctionTreeAlgorithm()
inferer.setNetwork(net)
# We now have a network and want to perform inference.
# The class used for this task is JunctionTreeAlgorithm.
evidence = HashMap()
evidence.put(a, "false")
evidence.put(b, "true")
inferer.setEvidence(evidence)
beliefsC = inferer.getBeliefs(c)
print "P(c | a=false, b=true):",beliefsC.tolist()
Ads help maintain this website.