def fit_lds_model(Xs, Xtest, D, N_samples=100): model = MultinomialLDS(K, D, init_dynamics_distn=GaussianFixed(mu=np.zeros(D), sigma=1*np.eye(D)), dynamics_distn=AutoRegression(nu_0=D+1,S_0=1*np.eye(D),M_0=np.zeros((D,D)),K_0=1*np.eye(D)), sigma_C=0.01 ) for X in Xs: model.add_data(X) model.resample_parameters() init_results = (0, model, model.log_likelihood(), model.heldout_log_likelihood(Xtest, M=1), model.predictive_log_likelihood(Xtest, M=1000)) def resample(): tic = time.time() model.resample_model() toc = time.time() - tic return toc, None, model.log_likelihood(), \ model.heldout_log_likelihood(Xtest, M=1), \ model.predictive_log_likelihood(Xtest, M=1000) times, samples, lls, test_lls, pred_lls = \ map(np.array, zip(*([init_results] + [resample() for _ in progprint_xrange(N_samples)]))) timestamps = np.cumsum(times) return Results(lls, test_lls, pred_lls, samples, timestamps)
def fit_lds_model(Xs, Xtest, D, N_samples=100): model = MultinomialLDS(K, D, init_dynamics_distn=GaussianFixed(mu=np.zeros(D), sigma=1 * np.eye(D)), dynamics_distn=AutoRegression(nu_0=D + 1, S_0=1 * np.eye(D), M_0=np.zeros((D, D)), K_0=1 * np.eye(D)), sigma_C=0.01) for X in Xs: model.add_data(X) model.resample_parameters() init_results = (0, model, model.log_likelihood(), model.heldout_log_likelihood(Xtest, M=1), model.predictive_log_likelihood(Xtest, M=1000)) def resample(): tic = time.time() model.resample_model() toc = time.time() - tic return toc, None, model.log_likelihood(), \ model.heldout_log_likelihood(Xtest, M=1), \ model.predictive_log_likelihood(Xtest, M=1000) times, samples, lls, test_lls, pred_lls = \ map(np.array, zip(*([init_results] + [resample() for _ in progprint_xrange(N_samples)]))) timestamps = np.cumsum(times) return Results(lls, test_lls, pred_lls, samples, timestamps)
def fit_lds_model(Xs, Xtest, D, N_samples=100): Nx = len(Xs) assert len(Xtest) == Nx model = MultinomialLDS(K, D, init_dynamics_distn=GaussianFixed(mu=np.zeros(D), sigma=1 * np.eye(D)), dynamics_distn=AutoRegression(nu_0=D + 1, S_0=1 * np.eye(D), M_0=np.zeros((D, D)), K_0=1 * np.eye(D)), sigma_C=1.) for X in Xs: model.add_data(X) model.resample_parameters() compute_pred_ll = lambda: sum([ model.predictive_log_likelihood(Xt, data_index=i, M=10)[0] for i, Xt in enumerate(Xtest) ]) init_results = ( 0, None, model.log_likelihood(), # model.heldout_log_likelihood(Xtest, M=1), np.nan, compute_pred_ll()) def resample(): tic = time.time() model.resample_model() toc = time.time() - tic return toc, None, model.log_likelihood(), \ np.nan,\ compute_pred_ll() times, samples, lls, test_lls, pred_lls = \ list(map(np.array, list(zip(*([init_results] + [resample() for _ in progprint_xrange(N_samples, perline=5)]))))) timestamps = np.cumsum(times) return Results(lls, test_lls, pred_lls, samples, timestamps)
def fit_lds_model(Xs, Xtest, D, N_samples=100): Nx = len(Xs) assert len(Xtest) == Nx model = MultinomialLDS(K, D, init_dynamics_distn=GaussianFixed(mu=np.zeros(D), sigma=1*np.eye(D)), dynamics_distn=AutoRegression(nu_0=D+1,S_0=1*np.eye(D),M_0=np.zeros((D,D)),K_0=1*np.eye(D)), sigma_C=1. ) for X in Xs: model.add_data(X) model.resample_parameters() compute_pred_ll = lambda: sum([model.predictive_log_likelihood(Xt, data_index=i, M=10)[0] for i,Xt in enumerate(Xtest)]) init_results = (0, None, model.log_likelihood(), # model.heldout_log_likelihood(Xtest, M=1), np.nan, compute_pred_ll()) def resample(): tic = time.time() model.resample_model() toc = time.time() - tic return toc, None, model.log_likelihood(), \ np.nan,\ compute_pred_ll() times, samples, lls, test_lls, pred_lls = \ map(np.array, zip(*([init_results] + [resample() for _ in progprint_xrange(N_samples, perline=5)]))) timestamps = np.cumsum(times) return Results(lls, test_lls, pred_lls, samples, timestamps)