def apply_C_matches_sym(): sigma = 1. N_X = 100 X = np.random.randn(N_X, 2) kernel = lambda X, Y: gaussian_kernel(X, Y, sigma=sigma) temp = incomplete_cholesky(X, kernel, eta=0.1) I, R, nu = (temp["I"], temp["R"], temp["nu"]) R_test = incomplete_cholesky_new_points(X, X, kernel, I, R, nu) v = np.random.randn(N_X.shape[0]) lmbda = 1. x = gaussian_low_rank.apply_left_C(v, X, X, R.T, R_test.T, lmbda) y = develop_gaussian_low_rank.apply_left_C_sym(v, X, R.T, lmbda) assert_allclose(x, y)
def apply_C_matches_sym(): sigma = 1. N_X = 100 X = np.random.randn(N_X, 2) kernel = lambda X, Y: gaussian_kernel(X, Y, sigma=sigma) temp = incomplete_cholesky(X, kernel, eta=0.1) I, R, nu = (temp["I"], temp["R"], temp["nu"]) R_test = incomplete_cholesky_new_points(X, X, kernel, I, R, nu) v = np.random.randn(N_X.shape[0]) lmbda = 1. x = gaussian_low_rank.apply_left_C(v, X, X, R.T, R_test.T, lmbda) y = develop_gaussian_low_rank.apply_left_C_sym(v, X, R.T, lmbda) assert_allclose(x, y)
def test_apply_C_left_matches_full(): sigma = 1. N = 100 X = np.random.randn(N, 2) Y = np.random.randn(20, 2) low_rank_dim = int(len(X) * .9) kernel = lambda X, Y = None: gaussian_kernel(X, Y, sigma=sigma) K_XY = kernel(X, Y) K = kernel(X) temp = incomplete_cholesky(X, kernel, eta=low_rank_dim) I, R, nu = (temp["I"], temp["R"], temp["nu"]) R_test = incomplete_cholesky_new_points(X, Y, kernel, I, R, nu) v = np.random.randn(X.shape[0]) lmbda = 1. x = (gaussian.compute_C(X, Y, K_XY, sigma) + (K + np.eye(len(X))) * lmbda).dot(v) y = gaussian_low_rank.apply_left_C(v, X, Y, R.T, R_test.T, lmbda) assert_allclose(x, y, atol=1e-1)
def test_apply_C_left_matches_full(): sigma = 1. N = 100 X = np.random.randn(N, 2) Y = np.random.randn(20, 2) low_rank_dim = int(len(X) * .9) kernel = lambda X, Y=None: gaussian_kernel(X, Y, sigma=sigma) K_XY = kernel(X, Y) K = kernel(X) temp = incomplete_cholesky(X, kernel, eta=low_rank_dim) I, R, nu = (temp["I"], temp["R"], temp["nu"]) R_test = incomplete_cholesky_new_points(X, Y, kernel, I, R, nu) v = np.random.randn(X.shape[0]) lmbda = 1. x = (gaussian.compute_C(X, Y, K_XY, sigma) + (K + np.eye(len(X))) * lmbda).dot(v) y = gaussian_low_rank.apply_left_C(v, X, Y, R.T, R_test.T, lmbda) assert_allclose(x, y, atol=1e-1)