DMelt:AI/2 Bayesian Neural Net
From HandWiki
Member
Bayesian network
This section is devoted to the Bayesian Neural Network (also known as Bayesian belief network). It is a model for reasoning about uncertainty. See Bayesian network article.
Using GUI
Dmelt provides a GUI to perform Bayesian network. For example, here is a simple code to run such networks:
from jhplot import * # start GUI HBayes()
Java / Python codding
DataMelt contains Java libraries for Bayesian network using a programmatic fashion. This library uses the Encog engine from Heaton Research.
Below we show a simple Bayesian network using Java libraries and Python:
# 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()
You can find many examples using Bayesian networks using DMelt examples |