model = SpringMassModel(state0, measure_t_grid) # Load data noise_stddev = 0.5 displacement_data = np.genfromtxt('noisy_data.txt') # Define prior distributions param_priors = {'K': ['Uniform', 0.0, 10.0], 'g': ['Uniform', 0.0, 10.0]} # SMC sampling num_particles = 500 num_time_steps = 20 num_mcmc_steps = 1 # Autosaver smc = SMCSampler(displacement_data, model, param_priors) step_list = smc.sample(num_particles, num_time_steps, num_mcmc_steps, noise_stddev, ess_threshold=num_particles * 0.5, autosave_file='autosaver.hdf5') try: # Calculate means means = [step.get_mean() for step in step_list] for key, value in means[-1].iteritems(): print '%s mean = %s' % (key, value) # Plot
if __name__ == '__main__': # instance model / set up ground truth / add noise a = 2 b = 3.5 x = np.arange(50) m = model(x) std_dev = 0.6 y_noisy = np.genfromtxt('noisy_data.txt') param_priors = {'a': ['Uniform', -5.0, 5.0], 'b': ['Uniform', -5.0, 5.0]} # run smc num_particles = 1000 num_time_steps = 20 num_mcmc_steps = 5 smc = SMCSampler(y_noisy, m, param_priors) particle_chain = smc.sample(num_particles, num_time_steps, num_mcmc_steps, std_dev, ess_threshold=0.5 * num_particles, autosave_file='smc.h5') # try a restart restarted_chain = smc.sample(num_particles, num_time_steps, num_mcmc_steps, std_dev, ess_threshold=0.5 * num_particles, restart_time_step=10, hdf5_to_load='smc.h5',
from scipy.optimize import minimize if __name__ == '__main__': # instance model / set up ground truth / add noise a = 2 b = 3.5 x = np.arange(50) my_model = Model(x) std_dev = None # measurement noise std deviation will be sampled noisy_data = np.genfromtxt('noisy_data.txt') param_priors = {'a': ['Uniform', -5.0, 5.0], 'b': ['Uniform', -5.0, 5.0]} # run smc num_particles = 1000 num_time_steps = 20 num_mcmc_steps = 2 smc = SMCSampler(noisy_data, my_model, param_priors) step_list = smc.sample(num_particles, num_time_steps, num_mcmc_steps, std_dev, ess_threshold=0.5 * num_particles, autosave_file='test.h5') # plot results of last step try: step_list[-1].plot_pairwise_weights(show=False, save=True) except: pass