def test_calc_same_diff_likelihood_ratio(): np.random.seed(1234) n_k = 100 K = 7 dim = 10 data_dictionary = generate_data(n_k, K, dim) X_train = data_dictionary['data'][:500] Y = data_dictionary['labels'][:500] model = plda.Model(X_train, Y) X_infer_category_1 = data_dictionary['data'][500:600] X_infer_category_1 = model.transform(X_infer_category_1, 'D', 'U_model') X_infer_category_2 = data_dictionary['data'][600:] X_infer_category_2 = model.transform(X_infer_category_2, 'D', 'U_model') similarity_1v2 = model.calc_same_diff_likelihood_ratio(X_infer_category_1, X_infer_category_2) similarity_2v2 = model.calc_same_diff_likelihood_ratio( X_infer_category_2[:50], X_infer_category_2[50:] ) assert_almost_equal(similarity_1v2, -46868.44557534719) assert_almost_equal(similarity_2v2, 29.917954937414834)
def data_dictionary(): np.random.seed(1234) n_k = 1000 K = 5 dim = 10 return generate_data(n_k, K, dim)
def test_calc_logp_mariginal_likelihood(): np.random.seed(1234) n_k = 100 K = 5 dim = 10 data_dictionary = generate_data(n_k, K, dim) X = data_dictionary['data'] Y = data_dictionary['labels'] model = plda.Model(X, Y) prior_mean = model.prior_params['mean'] prior_cov_diag = model.prior_params['cov_diag'] logpdf = gaussian(prior_mean, np.diag(prior_cov_diag + 1)).logpdf data = np.random.random((n_k, prior_mean.shape[-1])) expected_logps = logpdf(data) actual_logps = model.calc_logp_marginal_likelihood(data[:, None]) assert_allclose(actual_logps, expected_logps)
def data_dict(): np.random.seed(1234) return generate_data(n_k=1000, K=10, dimensionality=50)
def truth_dict(): np.random.seed(1234) return generate_data(n_k=500, K=2000, dimensionality=5)