scikit-learn / scikit-learn/scikit-learn
Add the Diffusion Map Dimensionality Reduction Technique
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 67.3k
- Forks
- 27.4k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 58
Description
The diffusion map is a dimensionality reduction technique that uses a transitional probability as its "distance" measure. It is noise-resistant and non-linear. Moreover, the algorithm itself is fast and scalable (I've used it with 50k+ samples). I wrote a quick implementation here.
It has been of interest in numerous scientific fields:
Diffusion maps (1119 citations)
Geometric diffusions as a tool for harmonic analysis and structure definition of data: Diffusion maps
(672 citations)
Functional diffusion map: a noninvasive MRI biomarker for early stratification of clinical brain tumor response (491 citations)
Diffusion maps and coarse-graining: A unified framework for dimensionality reduction, graph partitioning, and data set parameterization (450 citations)
Furthermore, a Google scholar search for "diffusion map dimensionality reduction" yields more results than "isomap", "locally linear embedding", or "hessian eigenmapping".
If I fix up my implementation, would you all be interested in having this in sklearn?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no repository files, tests, or entry points. Start by reviewing the linked implementation and the referenced diffusion-map papers; the issue does not define an acceptance test or a concrete definition of done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100