Пример #1
0
 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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
 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())
Пример #5
0
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)
Пример #6
0
 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())
Пример #7
0
 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())
Пример #8
0
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
Пример #10
0
 def create_model(self, mcmc_chainlen):
     mcmc = BayesianMcmc(self.data_model)
     mcmc.mh_params['chain_length'] = mcmc_chainlen
     return mcmc