def meanfield_example(true_model, X, Z_true, mask): # Fit a test model model = FactorAnalysis( D_obs, D_latent, # W=true_model.W, sigmasq=true_model.sigmasq ) inf_data = model.add_data(X, mask=mask) model.set_empirical_mean() lps = [] angles = [] N_iters = 100 for _ in progprint_xrange(N_iters): model.meanfield_coordinate_descent_step() lps.append(model.expected_log_likelihood()) E_W, _, _, _ = model.regression.mf_expectations angles.append(principal_angle(true_model.W, E_W)) plot_results(lps, angles, Z_true, inf_data.Z)
def meanfield_example(true_model, true_data): X, mask = true_data.X, true_data.mask # Fit a test model model = FactorAnalysis( D_obs, D_latent, # W=true_model.W, sigmasq=true_model.sigmasq ) inf_data = model.add_data(X, mask=mask) lps = [] angles = [] N_iters = 100 for _ in progprint_xrange(N_iters): model.meanfield_coordinate_descent_step() lps.append(model.expected_log_likelihood()) E_W, _, _, _ = model.regression.mf_expectations angles.append(principal_angle(true_model.W, E_W)) plot_results(lps, angles, true_data.Z, inf_data.Z)