/** * {@inheritDoc} */ @Override public DynamicBayesianNetwork getLearntDBN() { return new DynamicBayesianNetwork(this.dag, this.ef_extendedBNTime0.toConditionalDistribution(), this.ef_extendedBNTimeT.toConditionalDistribution()); }
/** * Generates a Dynamic Naive Bayes model with randomly initialized distributions. * @param random an object of type {@link java.util.Random}. * @param numberClassStates the number of states for the class variable. * @param connectChildrenTemporally a {@code boolean} that indicates whether the children are connected temporally or not. * @return a {@link DynamicBayesianNetwork} object. */ public static DynamicBayesianNetwork generateDynamicNaiveBayes(Random random, int numberClassStates, boolean connectChildrenTemporally){ DynamicBayesianNetwork network = new DynamicBayesianNetwork( DynamicBayesianNetworkGenerator.generateDynamicNaiveBayesDAG(numberClassStates, connectChildrenTemporally)); network.randomInitialization(random); return network; }
/** * Converts this EF_DynamicBayesianNetwork to an equivalent {@link DynamicBayesianNetwork} object. * @param dag a {@link DynamicDAG} object defining the graphical structure. * @return a {@link DynamicBayesianNetwork} object. */ public DynamicBayesianNetwork toDynamicBayesianNetwork(DynamicDAG dag) { return new DynamicBayesianNetwork(dag, EF_BayesianNetwork.toConditionalDistribution(this.bayesianNetworkTime0.getDistributionList()), EF_BayesianNetwork.toConditionalDistribution(this.bayesianNetworkTimeT.getDistributionList())); }
DynamicBayesianNetworkGenerator.setNumberOfDiscreteVars(nMVars); DynamicDAG dynamicDAG = DynamicBayesianNetworkGenerator.generateDynamicNaiveBayesDAG(2,true); DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(dynamicDAG); dbn.randomInitialization(new Random(seed));
DynamicBayesianNetwork dynamicFAN = new DynamicBayesianNetwork(dynamicDAG); dynamicFAN.randomInitialization(random); return dynamicFAN;
DynamicBayesianNetwork dynamicTAN = new DynamicBayesianNetwork(dynamicDAG); dynamicTAN.randomInitialization(random); return dynamicTAN;
throw new IllegalStateException("DAG with cycles"); DynamicBayesianNetwork network = new DynamicBayesianNetwork(dag);
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; }
this.amidstDBN = new DynamicBayesianNetwork(dynamicDAG);
DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(dag);
throw new IllegalStateException("DAG with cycles"); DynamicBayesianNetwork network = new DynamicBayesianNetwork(dag);
/** * In this example we show how to create an input-outputString KF with Gaussian mixtures (as in Figure 4.29 of Deliverable 2.1). */ public static void VerdandeInputOutputHMM() throws IOException { DataStream<DynamicDataInstance> data = DynamicDataStreamLoader.loadFromFile("datasets/simulated/syntheticDataVerdandeScenario3.arff"); Attribute attDepth = data.getAttributes().getAttributeByName("depth"); Attribute attGammaDiff = data.getAttributes().getAttributeByName("gammaDiff"); DynamicVariables dynamicVariables = new DynamicVariables(); Variable observedDepth = dynamicVariables.newDynamicVariable(attDepth); Variable observedGammaDiff = dynamicVariables.newDynamicVariable(attGammaDiff); Variable formationNo = dynamicVariables.newMultinomialLogisticDynamicVariable("FormationNo", 2); Variable shift = dynamicVariables.newMultinomialDynamicVariable("Shift",2); DynamicDAG dynamicDAG = new DynamicDAG(dynamicVariables); dynamicDAG.getParentSetTimeT(formationNo).addParent(observedDepth); dynamicDAG.getParentSetTimeT(formationNo).addParent(dynamicVariables.getInterfaceVariable(formationNo)); //TODO Error trying to add a duplicate parent. A -> B <- Aclone. We are considering A and AClone the same variables? Is that right? dynamicDAG.getParentSetTimeT(shift).addParent(formationNo); //dynamicDAG.getParentSetTimeT(shift).addParent(dynamicVariables.getInterfaceVariable(formationNo)); dynamicDAG.getParentSetTimeT(shift).addParent(dynamicVariables.getInterfaceVariable(shift)); dynamicDAG.getParentSetTimeT(observedGammaDiff).addParent(shift); System.out.println("-------------------------------------\n"); System.out.println("Input-outputString HMM (Figure 4.31 of D2.1)\n"); System.out.println(dynamicDAG.toString()); DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(dynamicDAG); System.out.println(dbn.toString()); DynamicBayesianNetworkWriter.save(dbn, "networks/simulated/HuginVerdandeIOHMM.dbn"); }
DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(dynamicDAG); System.out.println(dbn.toString());
DynamicBayesianNetwork dynamicBayesianNetwork = new DynamicBayesianNetwork(dynamicDAG); System.out.println(dynamicBayesianNetwork.toString());
DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(dynamicDAG); System.out.printf(dbn.toString());
@Override public DynamicBayesianNetwork getLearntDynamicBayesianNetwork() { BayesianNetwork bnTime0 = this.parallelVBTime0.getLearntBayesianNetwork(); BayesianNetwork bnTimeT = this.svbTimeT.getLearntBayesianNetwork(); DynamicVariables dynamicVariables = this.dynamicDAG.getDynamicVariables(); DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(this.dynamicDAG); for (Variable dynamicVariable : dynamicVariables) { ConditionalDistribution dynamicDist = dbn.getConditionalDistributionTime0(dynamicVariable); ConditionalDistribution staticDist = bnTime0.getConditionalDistribution(bnTime0.getVariables().getVariableByName(dynamicVariable.getName())); staticDist.setVar(dynamicVariable); staticDist.setConditioningVariables(dynamicDist.getConditioningVariables()); dbn.setConditionalDistributionTime0(dynamicVariable,staticDist); } for (Variable dynamicVariable : dynamicVariables) { ConditionalDistribution dynamicDist = dbn.getConditionalDistributionTimeT(dynamicVariable); ConditionalDistribution staticDist = bnTimeT.getConditionalDistribution(bnTimeT.getVariables().getVariableByName(dynamicVariable.getName())); staticDist.setVar(dynamicVariable); staticDist.setConditioningVariables(dynamicDist.getConditioningVariables()); dbn.setConditionalDistributionTimeT(dynamicVariable,staticDist); } return dbn; }
DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(dynamicDAG); System.out.printf(dbn.toString());
DynamicBayesianNetwork dynamicBayesianNetwork = new DynamicBayesianNetwork(dynamicDAG); System.out.println(dynamicBayesianNetwork.toString());
DynamicBayesianNetwork bayesianNetwork = new DynamicBayesianNetwork(dag);
DynamicBayesianNetwork dbn = new DynamicBayesianNetwork(dynamicDAG); System.out.printf(dbn.toString());