def test_laplacian_eigenmap_deterministic(): # Test that laplacian eigenmap is deterministic random_state = np.random.RandomState(36) data = random_state.randn(10, 30) sims = rbf_kernel(data) embedding_1 = laplacian_eigenmap(sims) embedding_2 = laplacian_eigenmap(sims) assert_array_almost_equal(embedding_1, embedding_2)
def test_laplacian_eigenmap_unnormalized(): # Test that laplacian_eigenmap is also processing unnormalized laplacian correctly random_state = np.random.RandomState(36) data = random_state.randn(10, 30) sims = rbf_kernel(data) n_components = 8 embedding_1 = laplacian_eigenmap(sims, norm_laplacian=False, n_components=n_components, drop_first=False) # Verify using manual computation with denembedding eigh laplacian, dd = graph_laplacian(sims, normed=False, return_diag=True) _, diffusion_map = eigh(laplacian) embedding_2 = diffusion_map.T[:n_components] * dd embedding_2 = _deterministic_vector_sign_flip(embedding_2).T assert_array_almost_equal(embedding_1, embedding_2)