Private method to calculate Spectral embedding
    :param dimensions: (int)
    :return: coordinate matrix (np.array)

def _embedding_spectral(matrix, dimensions=3, unit_length=True,
                        affinity_matrix=None, sigma=1):
    """
    Private method to calculate Spectral embedding
    :param dimensions: (int)
    :return: coordinate matrix (np.array)
    """
    if affinity_matrix is None:
        aff = rbf(matrix, sigma=sigma)
    else:
        aff = affinity_matrix
    coords = sklearn.manifold.spectral_embedding(aff, dimensions)
    return normalise_rows(coords) if unit_length else coords