/** * Creates a new EF_BayesianNetwork object given a {@link DynamicDAG} object. * @param dag a {@link DynamicDAG} object. */ public EF_DynamicBayesianNetwork(DynamicDAG dag) { this.bayesianNetworkTime0 = new EF_BayesianNetwork(dag.getParentSetsTime0()); this.bayesianNetworkTimeT = new EF_BayesianNetwork(dag.getParentSetsTimeT()); }
public void initLearning() { efBayesianNetwork = new EF_BayesianNetwork(dag); sumSS = efBayesianNetwork.createInitSufficientStatistics(); }
public void initLearning() { efBayesianNetwork = new EF_BayesianNetwork(dag); sumSS = efBayesianNetwork.createInitSufficientStatistics(); }
public void initLearning() { efBayesianNetwork = new EF_BayesianNetwork(dag); sumSS = efBayesianNetwork.createInitSufficientStatistics(); }
/** * Creates a new EF_BayesianNetwork object given a {@link DynamicBayesianNetwork} object. * @param dbn a {@link DynamicBayesianNetwork} object. */ public EF_DynamicBayesianNetwork(DynamicBayesianNetwork dbn){ this.bayesianNetworkTime0 = new EF_BayesianNetwork(); this.bayesianNetworkTimeT = new EF_BayesianNetwork(); this.bayesianNetworkTime0.setDistributionList(dbn.getConditionalDistributionsTime0().stream().map(dist -> dist.<EF_ConditionalDistribution>toEFConditionalDistribution()).collect(Collectors.toList())); this.bayesianNetworkTimeT.setDistributionList(dbn.getConditionalDistributionsTimeT().stream().map(dist -> dist.<EF_ConditionalDistribution>toEFConditionalDistribution()).collect(Collectors.toList())); }
public static void main(String[] args) throws IOException, ClassNotFoundException { int batchSize = 100; DataStream<DataInstance> data = DataStreamLoader.open("datasets/simulated/WasteIncineratorSample.arff");; //We can load a Bayesian network using the static class BayesianNetworkLoader DAG dag = DAGGenerator.getNaiveBayesStructure(data.getAttributes(), "B"); BayesianNetwork bn = new BayesianNetwork(dag); data.getAttributes().forEach(attribute -> System.out.println(attribute.getName())); //Now we print the loaded model System.out.println(bn.toString()); EF_BayesianNetwork efbn = new EF_BayesianNetwork(bn); SufficientStatistics sumSS = data.parallelStream(batchSize) .map(efbn::getSufficientStatistics) //see Program 6 .reduce(SufficientStatistics::sumVectorNonStateless).get(); //.reduce((v1,v2) -> {v1.sum(v2); return v1;}).get(); sumSS.divideBy(data.stream().count()); for(int i=0; i<sumSS.size(); i++) { System.out.println(sumSS.get(i)); } }