scikit-learn / scikit-learn/scikit-learn

FastOPTICS in `sklearn.cluster`

Open
#25,824 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

module:cluster Needs Decision New Feature
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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.