/** * Creates a new BayesianNetworkSampler given an input {@link BayesianNetwork} object. * @param network1 an input {@link BayesianNetwork} object. */ public BayesianNetworkSampler(BayesianNetwork network1){ this.network = network1; localSampler = new eu.amidst.core.utils.BayesianNetworkSampler(network1); }
/** * Creates a new BayesianNetworkSampler given an input {@link BayesianNetwork} object. * @param bn an input {@link BayesianNetwork} object. */ public BayesianNetworkSampler(BayesianNetwork bn){ this.network = bn; localSampler = new eu.amidst.core.utils.BayesianNetworkSampler(bn); }
public static void main(String[] args) throws Exception { // load the true Bayesian network BayesianNetwork originalBnet = BayesianNetworkLoader.loadFromFile(args[0]); System.out.println("\n Network \n " + args[0]); System.out.println("\n Number of variables \n " + originalBnet.getDAG().getVariables().getNumberOfVars()); //Sampling from the input BN BayesianNetworkSampler sampler = new BayesianNetworkSampler(originalBnet); sampler.setSeed(0); // Defines the size of the data to be generated from the input BN int sizeData = Integer.parseInt(args[1]); System.out.println("\n Sampling and saving the data... \n "); DataStream<DataInstance> data = sampler.sampleToDataStream(sizeData); DataStreamWriter.writeDataToFile(data, "./data.arff"); }
public static void main(String[] agrs) throws IOException, ClassNotFoundException { //We first load the WasteIncinerator bayesian network which has multinomial and Gaussian variables. BayesianNetwork bn = BayesianNetworkLoader.loadFromFile("./networks/simulated/WasteIncinerator.bn"); //We simply create an BayesianNetworkSampler object, passing to the constructor the BN model. BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); sampler.setSeed(0); //The method sampleToDataStream returns a DataStream with ten DataInstance objects. DataStream<DataInstance> dataStream = sampler.sampleToDataStream(10); //We finally save the sampled data set to a arff file. DataStreamWriter.writeDataToFile(dataStream, "datasets/simulated/sample-WasteIncinerator.arff"); } }
BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn);
public static void demoPigs() throws IOException, ClassNotFoundException { //It needs GBs, so avoid putting this file in a Dropbox folder!! //String dataFile = new String("/Users/afa/Pigs.arff"); BayesianNetwork bn = BayesianNetworkLoader.loadFromFile("networks/dataWeka/Pigs.bn"); int sampleSize = 10000; BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); ArrayList<Integer> vSamplesOnMemory = new ArrayList(Arrays.asList(5000)); ArrayList<Integer> vNumCores = new ArrayList(Arrays.asList(1, 2, 3, 4)); for (Integer samplesOnMemory : vSamplesOnMemory) { for (Integer numCores : vNumCores) { System.out.println("Learning TAN: " + samplesOnMemory + " samples on memory, " + numCores + " core/s ..."); DataStream<DataInstance> data = sampler.sampleToDataStream(sampleSize); ParallelTAN tan = new ParallelTAN(); tan.setNumCores(numCores); tan.setNumSamplesOnMemory(samplesOnMemory); tan.setNameRoot(bn.getVariables().getListOfVariables().get(0).getName()); tan.setNameTarget(bn.getVariables().getListOfVariables().get(1).getName()); Stopwatch watch = Stopwatch.createStarted(); BayesianNetwork model = tan.learn(data); System.out.println(watch.stop()); } } }
private static void sampleBayesianNetwork() throws IOException { BayesianNetwork bn = new BayesianNetwork(dag); BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); sampler.setSeed(0); //The method sampleToDataStream returns a DataStream with ten DataInstance objects. DataStream<DataInstance> dataStream = sampler.sampleToDataStream(getSampleSize()); //We finally save the sampled data set to an arff file. DataStreamWriter.writeDataToFile(dataStream, "datasets/sampleBatchSize.arff"); }
public static void main(String[] args) throws Exception { int sampleSize = 10000; BayesianNetwork bn = BayesianNetworkLoader.loadFromFile("networks/simulated/asia.bn"); System.out.println(bn); BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); DataStream<DataInstance> data = sampler.sampleToDataStream(sampleSize); ParallelTAN tan = new ParallelTAN(); tan.setNumCores(4); tan.setNumSamplesOnMemory(1000); tan.setNameRoot("X"); tan.setNameTarget("E"); BayesianNetwork model = tan.learn(data); System.out.println(model.toString()); } }
private static void sampleBayesianNetwork() throws IOException { BayesianNetwork bn = new BayesianNetwork(dag); BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); sampler.setSeed(0); //The method sampleToDataStream returns a DataStream with ten DataInstance objects. DataStream<DataInstance> dataStream = sampler.sampleToDataStream(getSampleSize()); //We finally save the sampled data set to an arff file. DataStreamWriter.writeDataToFile(dataStream, getPathToFile()); }
BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); sampler.loadOptions();
public static void runParallelKMeans() throws IOException { DataStream<DataInstance> data; if(isSampleData()) { BayesianNetworkGenerator.setNumberOfGaussianVars(getNumGaussVars()); BayesianNetworkGenerator.setNumberOfMultinomialVars(getNumDiscVars(), getNumStates()); BayesianNetwork bn = BayesianNetworkGenerator.generateBayesianNetwork(); data = new BayesianNetworkSampler(bn).sampleToDataStream(getSampleSize()); DataStreamWriter.writeDataToFile(data, pathToFile); } data = DataStreamLoader.open(pathToFile); ParallelKMeans.setBatchSize(batchSize); double[][] centroids = ParallelKMeans.learnKMeans(getK(),data); for (int clusterID = 0; clusterID < centroids.length; clusterID++) { System.out.println("Cluster "+(clusterID+1)+": "+Arrays.toString(centroids[clusterID])); } }
BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); sampler.loadOptions();
BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); sampler.setMARVar(bn.getVariables().getVariableById(0),0.2); sampler.setMARVar(bn.getVariables().getVariableById(3),0.2);
BayesianNetworkSampler sampler = new BayesianNetworkSampler(oneNormalVarBN); sampler.setSeed(i); DataOnMemory<DataInstance> batch = sampler.sampleToDataStream(batchSize).toDataOnMemory();
public static void generateData(int seed, double tempMean, String outputFile) throws Exception { BayesianNetwork network = createFireDetectorModel(tempMean); BayesianNetworkSampler sampler = new BayesianNetworkSampler(network); sampler.setSeed(seed); sampler.setLatentVar(network.getVariables().getVariableByName("Temperature")); sampler.setLatentVar(network.getVariables().getVariableByName("Smoke")); DataStream<DataInstance> dataStream = sampler.sampleToDataStream(1000); DataStreamWriter.writeDataToFile(dataStream, outputFile); } public static void main(String[] args) throws Exception {
public static void generateData() throws Exception { BayesianNetwork network = createFireDetectorModel(); BayesianNetworkSampler sampler = new BayesianNetworkSampler(network); sampler.setSeed(0); sampler.setLatentVar(network.getVariables().getVariableByName("Temperature")); sampler.setLatentVar(network.getVariables().getVariableByName("Smoke")); DataStream<DataInstance> dataStream = sampler.sampleToDataStream(1000); DataStreamWriter.writeDataToFile(dataStream, "./datasets/sensorReadings.arff"); } public static void main(String[] args) throws Exception {
BayesianNetworkSampler sampler = new BayesianNetworkSampler(asianet); sampler.setSeed(0);
public static void main(String[] args) throws Exception { String[] bns = {"./networks/simulated/Normal.bn", "./networks/simulated/Normal_1NormalParents.bn", "./networks/simulated/Normal_NormalParents.bn"}; for (String bnname : bns) { BayesianNetwork bn = BayesianNetworkLoader.loadFromFile(bnname); BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); sampler.setSeed(2); DataStream<DataInstance> data = sampler.sampleToDataStream(10000); //Set-up Flink session. Configuration conf = new Configuration(); conf.setInteger("taskmanager.network.numberOfBuffers", 12000); final ExecutionEnvironment env = ExecutionEnvironment.createLocalEnvironment(conf); env.getConfig().disableSysoutLogging(); env.setParallelism(Main.PARALLELISM); baseTest(env, data, bn, 1000, 0.1); } } }
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()); } }
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()); } } }