/** * Returns an interface variable given its name. * @param name a {@code String} that represents a valid interface variable name. * @return a {@link Variable} object. */ public Variable getInterfaceVariableByName(String name) { return this.getInterfaceVariable(this.getVariableByName(name)); }
/** * Method to set the class variable. Note that it should be multinomial * @param className String with the name of the class variable * @throws WrongConfigurationException is thrown when the variable is not a multinomial. */ public T setClassName(String className) throws WrongConfigurationException { setClassVar(variables.getVariableByName(className)); return (T)this; }
public List<Variable> getVariablesForListOfAttributes(List<Attribute> attributeList){ return attributeList.parallelStream() .map(att->getVariableByName(att.getName())) .collect(Collectors.toList()); }
public static DynamicBayesianNetwork createDBN1(int numVars) throws Exception { DynamicVariables dynamicVariables = new DynamicVariables(); Variable classVar = dynamicVariables.newMultinomialDynamicVariable("C", 2); for (int i = 0; i < numVars; i++) { dynamicVariables.newGaussianDynamicVariable("A" + i); } DynamicDAG dag = new DynamicDAG(dynamicVariables); for (int i = 0; i < numVars; i++) { dag.getParentSetTimeT(dynamicVariables.getVariableByName("A" + i)).addParent(classVar); if (connectDBN) dag.getParentSetTimeT(dynamicVariables.getVariableByName("A" + i)).addParent(dynamicVariables.getVariableByName("A" + i).getInterfaceVariable()); } //dag.getParentSetTimeT(classVar).addParent(classVar.getInterfaceVariable()); dag.setName("dbn1"); DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(dag); dbn.randomInitialization(new Random(1)); return dbn; }
public static void generateEvidenceData() throws Exception { DynamicBayesianNetwork network = createDynamicFireDetectorModel(); DynamicBayesianNetworkSampler sampler = new DynamicBayesianNetworkSampler(network); sampler.setSeed(1); sampler.setLatentVar(network.getDynamicVariables().getVariableByName("Temperature")); sampler.setLatentVar(network.getDynamicVariables().getVariableByName("Smoke")); DataStream<DynamicDataInstance> dataStream = sampler.sampleToDataBase(1, 10); DataStreamWriter.writeDataToFile(dataStream, "./datasets/TimeIndexedSensorReadingsEvidence.arff"); }
public static void generateData() throws Exception { DynamicBayesianNetwork network = createDynamicFireDetectorModel(); DynamicBayesianNetworkSampler sampler = new DynamicBayesianNetworkSampler(network); sampler.setSeed(1); sampler.setLatentVar(network.getDynamicVariables().getVariableByName("Temperature")); sampler.setLatentVar(network.getDynamicVariables().getVariableByName("Smoke")); DataStream<DynamicDataInstance> dataStream = sampler.sampleToDataBase(100,1000); DataStreamWriter.writeDataToFile(dataStream, "./datasets/TimeIndexedSensorReadings.arff"); dataStream = sampler.sampleToDataBase(1,10); DataStreamWriter.writeDataToFile(dataStream, "./datasets/TimeIndexedSensorReadingsEvidence.arff"); } public static void generateEvidenceData() throws Exception {
dynMAP.setNumberOfTimeSteps(nTimeSteps); Variable mapVariable = dynamicBayesianNetwork.getDynamicVariables().getVariableByName("ClassVar"); dynMAP.setMAPvariable(mapVariable);
Variable classVariable = variables.getVariableByName(className); continue; Variable variable = variables.getVariableByName(att.getName()); globalDynamicDAG.getParentSetTimeT(variable).addParent(classVariable); for (int i = 0; i < this.numberOfGlobalVars ; i++) {
Variable fire = dbn.getDynamicVariables().getVariableByName("Fire");
public static void main(String[] args) throws IOException, ClassNotFoundException { DynamicBayesianNetwork dbn = DynamicBayesianNetworkLoader.loadFromFile("networks/simulated/exampleDBN.dbn"); System.out.println(dbn); //Testing dataset String filenamePredict = "datasets/simulated/cajamar.arff"; DataStream<DynamicDataInstance> dataPredict = DynamicDataStreamLoader.open(filenamePredict); //Select the inference algorithm InferenceAlgorithmForDBN infer = new FactoredFrontierForDBN(new ImportanceSampling()); // new ImportanceSampling(), new VMP(), infer.setModel(dbn); Variable varTarget = dbn.getDynamicVariables().getVariableByName("discreteHiddenVar"); UnivariateDistribution posterior = null; //Classify each instance int t = 0; for (DynamicDataInstance instance : dataPredict) { if (instance.getSequenceID()>0) break; infer.addDynamicEvidence(instance); infer.runInference(); posterior = infer.getFilteredPosterior(varTarget); System.out.println("t="+t+", P(discreteHiddenVar | Evidence) = " + posterior); posterior = infer.getPredictivePosterior(varTarget, 2); //Display the output System.out.println("t="+t+"+5, P(discreteHiddenVar | Evidence) = " + posterior); t++; } }
DynamicDAG dynamicDAG = new DynamicDAG(dynamicVariables); Variable A = dynamicVariables.getVariableByName("A"); Variable B = dynamicVariables.getVariableByName("B"); Variable C = dynamicVariables.getVariableByName("C"); Variable D = dynamicVariables.getVariableByName("D"); Variable E = dynamicVariables.getVariableByName("E"); Variable G = dynamicVariables.getVariableByName("G");
Node huginChild = (Node)huginNodes.get(i); if(huginChild.getTemporalMaster()==null){ //Only master nodes Variable amidstChild = dynamicVariables.getVariableByName(huginChild.getName()); NodeList huginParents = huginChild.getParents(); Node huginParent = (Node) huginParents.get(parentsIndexes.get(j)); if(huginParent.getTemporalMaster()==null){ Variable amidstParent = dynamicVariables.getVariableByName(huginParent.getName()); dynamicDAG.getParentSetTimeT(amidstChild).addParent(amidstParent);
Variable amidstVar = amidstDBN.getDynamicVariables().getVariableByName(huginNode.getName()); if (amidstDBN.getConditionalDistributionTimeT(amidstVar) instanceof Multinomial){ dist = new Multinomial_MultinomialParents(amidstVar,new ArrayList()); Variable amidstVar = amidstDBN.getDynamicVariables().getVariableByName(huginNode.getTemporalMaster().getName()); if (amidstDBN.getConditionalDistributionTime0(amidstVar) instanceof Multinomial){ dist = new Multinomial_MultinomialParents(amidstVar,new ArrayList());
Variable classVar = extendedDBN.getDynamicVariables().getVariableByName("ClassVar");
Variable classVar = extendedDBN.getDynamicVariables().getVariableByName("ClassVar");
Variable classVar = extendedDBN.getDynamicVariables().getVariableByName("ClassVar");
Variable sensorT1 = fireDetectorModel.getDynamicVariables().getVariableByName("SensorTemp1"); Variable sensorT2 = fireDetectorModel.getDynamicVariables().getVariableByName("SensorTemp2"); svb.addParameterConstraint(new Constraint("alpha", sensorT1, 0.0, true)); svb.addParameterConstraint(new Constraint("alpha", sensorT2, 0.0, true)); svb.addParameterConstraint(new Constraint("beta1", sensorT2, 1.0, false)); Variable temp = fireDetectorModel.getDynamicVariables().getVariableByName("Temperature"); svb.addParameterConstraint(new Constraint("alpha | Fire = 0", temp, 0.0, false)); svb.addParameterConstraint(new Constraint("beta1 | Fire = 0", temp, 1.0, false));
Variable defaultVar = bn.getDynamicVariables().getVariableByName("DiscreteVar0"); UnivariateDistribution dist = null; UnivariateDistribution distAhead = null;
Variable fire = fireDetector.getDynamicVariables().getVariableByName("Fire"); Variable temperature = fireDetector.getDynamicVariables().getVariableByName("Temperature"); Variable smoke = fireDetector.getDynamicVariables().getVariableByName("Smoke");
sampler.setHiddenVar(dbn.getDynamicVariables().getVariableByName(hiddenVar)); sampler.setMARVar(dbn.getDynamicVariables().getVariableByName(noisyVar), 0.1);