/** * Learns the parameters of a TAN structure using the {@link eu.amidst.core.learning.parametric.ParallelMaximumLikelihood}. * @param dataStream a stream of data instances for learning the parameters. * @return a <code>BayesianNetwork</code> object in ADMIST format. */ public BayesianNetwork learn(DataStream<DataInstance> dataStream) { try { ParallelMLMissingData parameterLearningAlgorithm = new ParallelMLMissingData(); parameterLearningAlgorithm.setLaplace(true); parameterLearningAlgorithm.setParallelMode(this.parallelMode); parameterLearningAlgorithm.setDAG(this.learnDAG(dataStream)); parameterLearningAlgorithm.setDataStream(dataStream); parameterLearningAlgorithm.initLearning(); parameterLearningAlgorithm.runLearning(); learnedBN = parameterLearningAlgorithm.getLearntBayesianNetwork(); this.inference = new HuginInference(); this.inference.setModel(this.learnedBN); return this.learnedBN; }catch (ExceptionHugin ex){ throw new IllegalStateException("Hugin Exception: " + ex.getMessage()); } }
/** * Learns the parameters of a TAN structure using the {@link ParallelMaximumLikelihood}. * @param dataStream a stream of data instances for learning the parameters. * @return a <code>BayesianNetwork</code> object in ADMIST format. */ public BayesianNetwork learn(DataStream<DataInstance> dataStream) { try { ParallelMLMissingData parameterLearningAlgorithm = new ParallelMLMissingData(); parameterLearningAlgorithm.setLaplace(true); parameterLearningAlgorithm.setParallelMode(this.parallelMode); parameterLearningAlgorithm.setDAG(this.learnDAG(dataStream)); parameterLearningAlgorithm.setDataStream(dataStream); parameterLearningAlgorithm.initLearning(); parameterLearningAlgorithm.runLearning(); learnedBN = parameterLearningAlgorithm.getLearntBayesianNetwork(); this.inference = new HuginInference(); this.inference.setModel(this.learnedBN); return this.learnedBN; }catch (ExceptionHugin ex){ throw new IllegalStateException("Hugin Exception: " + ex.getMessage()); } }
/** * Learns the parameters of a TAN structure using the {@link ParallelMaximumLikelihood}. * @param dataStream a stream of data instances for learning the parameters. * @param batchSize the size of the batch for the parallel ML algorithm. * @return a <code>BayesianNetwork</code> object in ADMIST format. * @throws ExceptionHugin */ public BayesianNetwork learn(DataStream<DataInstance> dataStream, int batchSize) throws ExceptionHugin { ParallelMLMissingData parameterLearningAlgorithm = new ParallelMLMissingData(); parameterLearningAlgorithm.setWindowsSize(batchSize); parameterLearningAlgorithm.setParallelMode(this.parallelMode); parameterLearningAlgorithm.setDAG(this.learnDAG(dataStream)); parameterLearningAlgorithm.setDataStream(dataStream); parameterLearningAlgorithm.initLearning(); parameterLearningAlgorithm.runLearning(); learnedBN = parameterLearningAlgorithm.getLearntBayesianNetwork(); this.inference = new HuginInference(); this.inference.setModel(this.learnedBN); return this.learnedBN; }
/** * Learns the parameters of a TAN structure using the {@link eu.amidst.core.learning.parametric.ParallelMaximumLikelihood}. * @param dataStream a stream of data instances for learning the parameters. * @param batchSize the size of the batch for the parallel ML algorithm. * @return a <code>BayesianNetwork</code> object in ADMIST format. * @throws ExceptionHugin */ public BayesianNetwork learn(DataStream<DataInstance> dataStream, int batchSize) throws ExceptionHugin { ParallelMLMissingData parameterLearningAlgorithm = new ParallelMLMissingData(); parameterLearningAlgorithm.setWindowsSize(batchSize); parameterLearningAlgorithm.setParallelMode(this.parallelMode); parameterLearningAlgorithm.setDAG(this.learnDAG(dataStream)); parameterLearningAlgorithm.setDataStream(dataStream); parameterLearningAlgorithm.initLearning(); parameterLearningAlgorithm.runLearning(); learnedBN = parameterLearningAlgorithm.getLearntBayesianNetwork(); this.inference = new HuginInference(); this.inference.setModel(this.learnedBN); return this.learnedBN; }