biolab / biolab/orange3

DBSCAN parameters extension

Open
#6,047 0 comments 0 reactions 0 assignees View on GitHub
bug meal
Dominant language
Python
Stars
5.7k
Forks
1.1k
Avg merge
12d 2h
Merged PRs (30d)
1

Description

Problem:
The optimal DBSCAN Neighborhood distance could be beyond the 1000-item graph min value. Values external to the graph cannot be saved in the workflow.

Case:
We are working on a classification model that currently fits our needs well. We are using a DBSCAN like this:
![image](https://user-images.githubusercontent.com/41840980/175522240-ae1658e3-712c-4526-993b-8bf0b6cc1b85.png)
In our case, we iterate the "Neighborhood distance" parameter (manually, at the moment) to find the value that produces the highest number of clusters. As you can see from the image, in this example we have determined the optimal value to be 0.09 (21 clusters, in this case), but the graph shows just up to 0.309. Higher and lower values for the distance return a lower number of clusters.
[Yes, I know this is not the canonical way to set it (usually, it has to be set after the cliff), but this way appears to be particularly effective at solving our classification case].
The number of items in the graph is fixed to 1000. When we change some parameters in the widget that feeds the DBSCAN, Orange resets the DBSCAN distance parameter to the 1000th-item value. Every time we open Orange and reload the workflow, the "Distance" value of DBSCAN is changed to the graph boundary, no way to save an "out-of-graph-range" value.

Proposed solutions:
- Extend the graph to a distance value of 0.01 (thus considering more items, if appropriate).
- Add a button to allow the auto-search for the optimal value for "Neighborhood distance" to maximize the number of clusters.
- Maybe, extend the max value for the "Core point neighbors" (currently is 100).

Thanks. (I'm sure you've already considered some of these points.)

Contributor guide

Open the contributing guide

Research direction

The issue names no files or tests; start by locating the DBSCAN widget and the 1000-item graph's distance-parameter handling. Compare the proposed graph extension, automatic search, and core-neighbor limit changes, then establish which behavior should be implemented and how an out-of-range distance should persist after saving and reloading a workflow.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, scikit-learn
Domain
data-visualization, machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.