Bayesian networks using Encog Java
Source code name: "neural_net_bayesian.py"
Programming language: Python
Topic: Artificial Intelligence/neural net
DMelt Version 1. Last modified: 10/27/2015. License: Pro
https://datamelt.org/code/cache/neural_net_bayesian_8177.py
To run this script using the DataMelt IDE, copy the above URL link to the menu [File]→[Read script from URL] of the DMelt IDE.


# This example is based on http://www.heatonresearch.com/
# Encog(tm) Java Examples v3.3
# http://www.heatonresearch.com/encog/
# https://github.com/encog/encog-java-examples
# http://www.apache.org/licenses/LICENSE-2.0
 
 
from org.encog.ml.bayesian import BayesianNetwork,BayesianEvent
from org.encog.ml.bayesian import EventType
from org.encog.ml.bayesian.query.enumerate import EnumerationQuery
from org.encog.ml.bayesian.query.sample import SamplingQuery
 
## build build the bayesian network structure
net=BayesianNetwork()
rained=net.createEvent("rained")
evenTemperatures=net.createEvent("temperature")
gardenGrew=net.createEvent("gardenGrew")
plentyOfCarrots=net.createEvent("carrots")
plentyOfTomatoes=net.createEvent("Tomatoes")

net.createDependency(rained, gardenGrew)
net.createDependency(evenTemperatures, gardenGrew)
net.createDependency(gardenGrew, plentyOfCarrots)
net.createDependency(gardenGrew, plentyOfTomatoes)
net.finalizeStructure()
	
# build the truth tales
rained.getTable().addLine(0.2, True)
evenTemperatures.getTable().addLine(0.5, True)
gardenGrew.getTable().addLine(0.9, True, True, True)
gardenGrew.getTable().addLine(0.7, True, False, True)
gardenGrew.getTable().addLine(0.5, True, True, False)
gardenGrew.getTable().addLine(0.1, True, False, False)
plentyOfCarrots.getTable().addLine(0.8, True, True)
plentyOfCarrots.getTable().addLine(0.2, True, False)
plentyOfTomatoes.getTable().addLine(0.6, True, True)
plentyOfTomatoes.getTable().addLine(0.1, True, False)

# validate the network
net.validate()
		
# display basic stats
print net.toString()
print "Parameter count: ", net.calculateParameterCount()
	

# query=SamplingQuery(net)	
query= EnumerationQuery(net)
query.defineEventType(rained, EventType.Evidence)
query.defineEventType(evenTemperatures, EventType.Evidence)
query.defineEventType(plentyOfCarrots, EventType.Outcome)
query.setEventValue(rained, True)
query.setEventValue(evenTemperatures, True)
query.setEventValue(plentyOfCarrots, True)
query.execute()
print query.toString()

Ads help maintain this website.