@Override public String toString() { return this.getModel().toString(); }
public static void main(String[] args) { DynamicBayesianNetworkGenerator.setNumberOfContinuousVars(0); DynamicBayesianNetworkGenerator.setNumberOfDiscreteVars(5); DynamicBayesianNetworkGenerator.setNumberOfStates(2); DynamicBayesianNetworkGenerator.setNumberOfLinks(5); DynamicBayesianNetwork dynamicNaiveBayes = DynamicBayesianNetworkGenerator.generateDynamicNaiveBayes(new Random(0), 2, true); System.out.println("ORIGINAL DYNAMIC DAG:"); System.out.println(dynamicNaiveBayes.getDynamicDAG().toString()); //System.out.println(dynamicNaiveBayes.toString()); System.out.println(); //dynamicNaiveBayes.getDynamicVariables().getListOfDynamicVariables().forEach(var -> System.out.println(var.getName())); //dynamicNaiveBayes.getDynamicVariables().getListOfDynamicVariables().forEach(var -> System.out.println(var.getName())); BayesianNetwork bn = DynamicToStaticBNConverter.convertDBNtoBN(dynamicNaiveBayes,4); System.out.println("NEW STATIC DAG:"); System.out.println(); System.out.println(bn.getDAG().toString()); System.out.println(); System.out.println("ORIGINAL DYNAMIC BN:"); System.out.println(dynamicNaiveBayes.toString()); System.out.println("STATIC BN:"); System.out.println(bn.toString()); } }
logger.info(parallelVB.getLearntDynamicBayesianNetwork().toString());
public static void main(String[] args) throws IOException { //We can open the data stream using the static class DataStreamLoader DataStream<DynamicDataInstance> data = DynamicDataStreamLoader.loadFromFile( "datasets/simulated/WasteIncineratorSample.arff"); //Parameter Learning //We fix the DAG structure, the data and learn the DBN ParameterLearningAlgorithm parallelMaximumLikelihood = new ParallelMaximumLikelihood(); parallelMaximumLikelihood.setWindowsSize(1000); parallelMaximumLikelihood.setDynamicDAG(MLforDBNfromDataset.getNaiveBayesStructure(data.getAttributes(),2)); parallelMaximumLikelihood.initLearning(); parallelMaximumLikelihood.updateModel(data); DynamicBayesianNetwork dbn = parallelMaximumLikelihood.getLearntDBN(); //We print the model System.out.println(dbn.toString()); }
public static void main(String[] args) throws IOException { Random random = new Random(1); //We first generate a dynamic Bayesian network (NB structure with class and attributes temporally linked) DynamicBayesianNetworkGenerator.setNumberOfContinuousVars(2); DynamicBayesianNetworkGenerator.setNumberOfDiscreteVars(5); DynamicBayesianNetworkGenerator.setNumberOfStates(3); DynamicBayesianNetwork dbnRandom = DynamicBayesianNetworkGenerator.generateDynamicNaiveBayes(random,2,true); //Sample dynamic data from the created dbn with random parameters DynamicBayesianNetworkSampler sampler = new DynamicBayesianNetworkSampler(dbnRandom); sampler.setSeed(0); //Sample 3 sequences of 100K instances DataStream<DynamicDataInstance> data = sampler.sampleToDataBase(3,10000); /*Parameter Learning with ML*/ //We fix the DAG structure, the data and learn the DBN ParameterLearningAlgorithm parallelMaximumLikelihood = new ParallelMaximumLikelihood(); parallelMaximumLikelihood.setWindowsSize(1000); parallelMaximumLikelihood.setDynamicDAG(dbnRandom.getDynamicDAG()); parallelMaximumLikelihood.initLearning(); parallelMaximumLikelihood.updateModel(data); DynamicBayesianNetwork dbnLearnt = parallelMaximumLikelihood.getLearntDBN(); //We print the model System.out.println(dbnLearnt.toString()); }
System.out.println(amidstDBN.toString());
public static void main(String[] args) throws IOException { BayesianNetworkGenerator.setNumberOfGaussianVars(0); BayesianNetworkGenerator.setNumberOfMultinomialVars(5, 3); BayesianNetworkGenerator.setSeed(0); BayesianNetwork bn = BayesianNetworkGenerator.generateNaiveBayes(2); int sampleSize = 1000000; BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); String file = "./datasets/simulated/randomdata.arff"; DataStream<DataInstance> dataStream = sampler.sampleToDataStream(sampleSize); DataStreamWriter.writeDataToFile(dataStream, file); DataStream<DynamicDataInstance> data = DynamicDataStreamLoader.loadFromFile(file); DynamicNaiveBayesClassifier model = new DynamicNaiveBayesClassifier(); model.setClassVarID(data.getAttributes().getNumberOfAttributes() - 1); model.setParallelMode(true); model.learn(data); DynamicBayesianNetwork nbClassifier = model.getDynamicBNModel(); System.out.println(nbClassifier.toString()); } }
DynamicBayesianNetwork extendedDBN = DynamicBayesianNetworkGenerator.generateDynamicNaiveBayes(random,2,true); System.out.println(extendedDBN.toString());
DynamicBayesianNetwork extendedDBN = DynamicBayesianNetworkGenerator.generateDynamicNaiveBayes(random,2,true); System.out.println(extendedDBN.toString());
/** * 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"); }
public static void main(String[] args) throws IOException { BayesianNetworkGenerator.setNumberOfGaussianVars(0); BayesianNetworkGenerator.setNumberOfMultinomialVars(5, 2); BayesianNetworkGenerator.setSeed(0); BayesianNetwork bn = BayesianNetworkGenerator.generateNaiveBayes(2); int sampleSize = 1000; BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); String file = "./datasets/simulated/randomdata.arff"; DataStream<DataInstance> dataStream = sampler.sampleToDataStream(sampleSize); DataStreamWriter.writeDataToFile(dataStream, file); DataStream<DynamicDataInstance> data = DynamicDataStreamLoader.loadFromFile(file); for (int i = 1; i <= 1; i++) { DynamicNaiveBayesClassifier model = new DynamicNaiveBayesClassifier(); model.setClassVarID(data.getAttributes().getNumberOfAttributes() - 1); model.setParallelMode(true); model.learn(data); DynamicBayesianNetwork nbClassifier = model.getDynamicBNModel(); System.out.println(nbClassifier.toString()); } } }
DynamicBayesianNetwork extendedDBN = DynamicBayesianNetworkGenerator.generateDynamicNaiveBayes(random, 2, true); System.out.println(extendedDBN.toString());
dynMAP.setMAPvariable(mapVariable); System.out.println(dynamicBayesianNetwork.toString());
System.out.println(dbnLearnt.toString());
System.out.println(dbn.toString());
System.out.println(bn.toString());
System.out.println(dynamicBayesianNetwork.toString());
System.out.printf(dbn.toString());
System.out.printf(dbn.toString());
System.out.println(dynamicBayesianNetwork.toString());