After the UMAP_::get_graph step the resulting COO matrix needs to converted to a Laplacian CSR matrix.
Then the lanczos solver can be called using raft::sparse::solver::lanczos_compute_smallest_eigenvectors
Additional steps may be required such as laplacian normalization which sklearn uses.
So far, I've verified that the current spectral initialization gives random noise embeddings. One easy way to check this is to use a toy dataset from sklearn such as S-curve, comment out the UMAP code after spectral initialization and plot it.
Once the new solver is integrated the spectral initialization should be fixed.
Documentation for future work:
raft::sparse::solver::lanczos_compute_smallest_eigenvectors
So far, I've verified that the current spectral initialization gives random noise embeddings. One easy way to check this is to use a toy dataset from sklearn such as S-curve, comment out the UMAP code after spectral initialization and plot it.
Once the new solver is integrated the spectral initialization should be fixed.