Esempio n. 1
0
def test_DiffusionMap_get_kernel_matrix_symmetry(mixtureNormals):
    "make sure the kernel matrix is symmetric"
    X = mixtureNormals
    df = DiffusionMap(sigma=1, embedding_dim=2)
    K = df._get_kernel_matrix(X, k=2)

    Q = (K - K.T).toarray()  # np.all doesnt work on sparse matrices
    assert np.all(Q == 0), 'returned kernel matrix is not symmetric'
Esempio n. 2
0
def test_DiffusionMap_get_kernel_matrix_number_of_neighbours(mixtureNormals):
    """actually we would like to test for the exact number of neighvours
    but due tot the symmetrizing, it can exceed the kNN"""
    X = mixtureNormals
    embDim = 2
    df = DiffusionMap(sigma=1, embedding_dim=embDim)

    kNN = 4
    K = df._get_kernel_matrix(X, k=kNN)
    assert K.shape == (X.shape[0], X.shape[0])

    nonzero_elements_per_row = np.sum(K.toarray() != 0, 1)
    print(nonzero_elements_per_row)
    assert np.all(
        nonzero_elements_per_row >= kNN
    )  # the number of nonzero elements must be kNN or larger (due to the symmetrizing
Esempio n. 3
0
def test__get_kernel_matrix_sparse(mixtureNormals):
    df = DiffusionMap(sigma=1, embedding_dim=2)
    K = df._get_kernel_matrix(mixtureNormals, k=10)
    assert issparse(K)