scikit-learn / scikit-learn/scikit-learn
FastOPTICS in `sklearn.cluster`
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 67.3k
- Forks
- 27.4k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 58
Description
Describe the workflow you want to enable
Is there a roadmap to add the FastOPTICS algorithm, [1], to the sklearn.cluster code base that already supports OPTICS?
[1] 2013, J. Schneider, M. Vlachos, _Fast Parameterless Density-based Clustering via Random Projections
Describe your proposed solution
The solution would be to combine what has already been done for the base OPTICS algorithm, combined with the existing code base for random projections and the Johnson-Lindenstrauss bound in sklearn.random_projection, to implement FastOPTICS.
The implementation in the data mining library ELKI (albeit in Java) could be used as an inspiration.
Describe alternatives you've considered, if relevant
No response
Additional context
No response
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
Start by reviewing the existing OPTICS implementation in sklearn.cluster and the random projection and Johnson-Lindenstrauss code in sklearn.random_projection. Use the referenced ELKI FastOPTICS.java implementation as an algorithm reference, then define the required API, tests, and correctness criteria for adding FastOPTICS to sklearn.cluster.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- machine-learning, python
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100