def create_model(self, ): mcmc = BayesianMcmc(self.data_model) mcmc.hyperparams['alpha'] = 2 mcmc.hyperparams['beta'] = 5 mcmc.mh_params['chain_length'] = 2000 mcmc.data_model.bscc_eval_mode = BeesModel.BSCC_MODE_PFUNCS return mcmc
def test_hpd(data): sample, expected_hpd = data mcmc = BayesianMcmc(None) hpd = mcmc._compute_hpd(sample, 0.95) print(hpd) for i in range(0, len(hpd)): assert hpd[i] - expected_hpd[i] < 1e-9
def mcmc(): dtmc_filepath = 'data/prism/bee_multiparam_synchronous_3.pm' bscc_filepath = 'data/prism/bee_multiparam_synchronous_3.txt' model = BeesModel.from_files(dtmc_filepath, bscc_filepath) mcmc = BayesianMcmc(model) assert model.bscc_eval_mode == BeesModel.BSCC_MODE_CHAIN_RUN return mcmc
def do_experiment(self, ): self.init() mcmc = BayesianMcmc(self.data_model) mcmc.data_model.chainruns_count = 400 mcmc.mh_params['chain_length'] = 200 self.print_log('Start inferencing, MCMC chain len {}'.format(1000)) m = self.syn_data['mult'] # start inferencing start_time = timeit.default_timer() mcmc.estimate_p(m) stop_time = timeit.default_timer() self.print_log('MCMC estimation, ETA(secs) {}'.format(stop_time - start_time)) print(mcmc.estimated_params['P']) rmse = sqrt(mean_squared_error(self.p_true, mcmc.estimated_params['P'])) self.print_log('RMSE {}'.format(rmse)) self.print_log(mcmc.summarize())
def do_experiment_rational(model, data_m, mh_chain_length): logging.info('...') logging.info( 'Metropolis Hastings, get BSCC by rational function evaluation') mcmc = BayesianMcmc(model) mcmc.mh_params['chain_length'] = mh_chain_length mcmc.hyperparams = { 'alpha': 1.5, 'beta': 1.5, } start_time = timeit.default_timer() mcmc.estimate_p(data_m) stop_time = timeit.default_timer() elapsed_time = stop_time - start_time logging.info('Finished in {} seconds'.format(elapsed_time)) summarize_inference_result(mcmc)
def do_experiment_beta(self, ): self.print_log('BETA PRIOR') config.models['use_uniform_prior'] = False self.data_model.bscc_eval_mode = BeesModel.BSCC_MODE_PFUNCS mcmc = BayesianMcmc(self.data_model) mcmc_chainlen = 500 mcmc.mh_params['chain_length'] = mcmc_chainlen mcmc.hyperparams = {'alpha': 2, 'beta': 5} self.print_log( 'Start inferencing, MCMC chain len {}'.format(mcmc_chainlen)) m = self.syn_data['mult'] start_time = timeit.default_timer() mcmc.estimate_p(m) stop_time = timeit.default_timer() self.print_log('MCMC estimation, ETA(secs) {}'.format(stop_time - start_time)) print(mcmc.estimated_params['P']) _rmse = rmse(self.p_true, mcmc.estimated_params['P']) self.print_log('RMSE {}'.format(_rmse)) self.print_log(mcmc.summarize())
def do_experiment_pfuncs(self, ): self.print_log('PFUNCS MODE') self.data_model.bscc_eval_mode = BeesModel.BSCC_MODE_PFUNCS mcmc = BayesianMcmc(self.data_model) mcmc_chainlen = 500 mcmc.mh_params['chain_length'] = mcmc_chainlen self.print_log( 'Start inferencing, MCMC chain len {}'.format(mcmc_chainlen)) m = self.syn_data['mult'] start_time = timeit.default_timer() mcmc.estimate_p(m) stop_time = timeit.default_timer() self.print_log('MCMC estimation, ETA(secs) {}'.format(stop_time - start_time)) print(mcmc.estimated_params['P']) _rmse = rmse(self.p_true, mcmc.estimated_params['P']) self.print_log('RMSE {}'.format(_rmse)) self.print_log(mcmc.summarize())
def mcmc(): return BayesianMcmc()
def create_model(self, mcmc_chainlen): mcmc = BayesianMcmc(self.data_model) mcmc.hyperparams['alpha'] = 2 mcmc.hyperparams['beta'] = 5 mcmc.mh_params['chain_length'] = mcmc_chainlen return mcmc
def create_model(self, mcmc_chainlen): mcmc = BayesianMcmc(self.data_model) mcmc.mh_params['chain_length'] = mcmc_chainlen return mcmc