def step(self):
beta_values = []
for i in xrange(self.local_updates_per_structure_update):
self.update_omega()
self.update_beta()
beta_values.append(self.current_state.beta)
self.additional_beta_values.append(beta_values)
move_type_indicator = np.random.rand()
if move_type_indicator < 0.45:
self.update_primitives()
elif move_type_indicator < 0.9:
self.add_remove()
else:
self.move_primitive()
# If the structure moves are accepted, beta becomes out of date,
# perhaps grievously, so we defensively update it before
# recording the new state
self.update_beta()
self.update_empty_probability()
self.update_window_parameters()
# As a convenience, have update_phylogeny_parameters return
# the resulting state's prior value (which it calculates
# anyway) and record that rather than recalculating it.
prior = self.update_phylogeny_parameters()
self.states.append(self.current_state.copy())
self.likelihoods.append(
self.model.likelihood_y_given_X_beta(self.current_X,
self.current_state.beta)
)
self.priors.append(prior)
评论列表
文章目录