BayesianNetworkGenerator.setSeed(0);
/** * Generate a DataSpark with the given number of samples and attributes (discrete and continuous). * @param jsc, JavaSparkContext * @param seed, the seed of the random number generator. * @param nSamples, the number of samples of the data stream. * @param nDiscreteAtts, the number of discrete attributes. * @param nContinuousAttributes, the number of continuous attributes. * @return A valid {@code DataSpark} object. */ public static DataSpark generate(JavaSparkContext jsc, int seed, int nSamples, int nDiscreteAtts, int nContinuousAttributes){ BayesianNetworkGenerator.setSeed(seed); BayesianNetworkGenerator.setNumberOfGaussianVars(nContinuousAttributes); BayesianNetworkGenerator.setNumberOfMultinomialVars(nDiscreteAtts,2); int nTotal = nDiscreteAtts+nContinuousAttributes; int nLinksMin = nTotal-1; int nLinksMax = nTotal*(nTotal-1)/2; BayesianNetworkGenerator.setNumberOfLinks((int)(0.8*nLinksMin + 0.2*nLinksMax)); BayesianNetwork bn = BayesianNetworkGenerator.generateBayesianNetwork(); // Sample from the BN int parallelism = 4; BayesianNetworkSampler sampler = new BayesianNetworkSampler(bn); return sampler.sampleToDataSpark(jsc, nSamples, parallelism); }
BayesianNetworkGenerator.setSeed(0);
BayesianNetworkGenerator.setSeed(0); BayesianNetworkGenerator.setNumberOfGaussianVars(10); BayesianNetworkGenerator.setNumberOfMultinomialVars(10, 5);
/** * Generate a DataFlink with the given number of samples and attributes (discrete and continuous). * @param seed, the seed of the random number generator. * @param nSamples, the number of samples of the data stream. * @param nDiscreteAtts, the number of discrete attributes. * @param nContinuousAttributes, the number of continuous attributes. * @return A valid {@code DataStream} object. */ public static DataFlink<DataInstance> generate(ExecutionEnvironment env, int seed, int nSamples, int nDiscreteAtts, int nContinuousAttributes){ BayesianNetworkGenerator.setSeed(seed); BayesianNetworkGenerator.setNumberOfGaussianVars(nContinuousAttributes); BayesianNetworkGenerator.setNumberOfMultinomialVars(nDiscreteAtts,2); int nTotal = nDiscreteAtts+nContinuousAttributes; int nLinksMin = nTotal-1; int nLinksMax = nTotal*(nTotal-1)/2; BayesianNetworkGenerator.setNumberOfLinks((int)(0.8*nLinksMin + 0.2*nLinksMax)); BayesianNetworkSampler sampler = new BayesianNetworkSampler(BayesianNetworkGenerator.generateBayesianNetwork()); sampler.setSeed(seed); return sampler.sampleToDataFlink(env,nSamples); }
BayesianNetworkGenerator.setNumberOfGaussianVars(numContVars); BayesianNetworkGenerator.setNumberOfMultinomialVars(numDiscVars, 2); BayesianNetworkGenerator.setSeed(0);
BayesianNetworkGenerator.setSeed(seed); BayesianNetworkGenerator.setNumberOfGaussianVars(nCVars); BayesianNetworkGenerator.setNumberOfMultinomialVars(nMVars, 2);
BayesianNetworkGenerator.setNumberOfGaussianVars(numContVars); BayesianNetworkGenerator.setNumberOfMultinomialVars(numDiscVars, 2); BayesianNetworkGenerator.setSeed(0);
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()); } } }
BayesianNetworkGenerator.setNumberOfGaussianVars(numContVars); BayesianNetworkGenerator.setNumberOfMultinomialVars(numDiscVars, numStates); BayesianNetworkGenerator.setSeed(0); BayesianNetwork bn = BayesianNetworkGenerator.generateNaiveBayes(2);