Bayesian networks using Encog Java
Code: "neural_net_bayesian.py". Programming language: Python DMelt Version 1. Last modified: 10/27/2015. License: Pro
https://datamelt.org/code/cache/neural_net_bayesian_4549.py
To run this script using the DMelt 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.