lmcinnes / lmcinnes/pynndescent

Backporting from UMAP 0.4dev

Open
#37 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
970
Forks
107
PR merge metrics
No merged PRs in 30d

Description

In https://github.com/lmcinnes/pynndescent/pull/16, there was mention of the UMAP 0.4dev branch having diverged substantially from pynndescent for the sparse code.

The non-sparse code doesn't seem to have been changed as much, though. The main change is in the nearest neighbor descent code; apart from that there is some variance in numba decoration, but that's about it.

If there is interest in porting UMAP 0.4dev code from `utils.py`, `nn_descent.py` and `rp_trees.py` back into pynndescent separately from the sparse or threaded code, I am happy to create a PR, so at least there are some diffs which can be examined to work out which bits to use from each code base.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare UMAP 0.4dev with pynndescent in utils.py, nn_descent.py, and rp_trees.py, starting with the nearest neighbor descent code and the differences in numba decoration. Determine which non-sparse changes should be ported separately from sparse or threaded code; done means the relevant diffs have been examined and the selected changes are backported.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
search
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.