-
Notifications
You must be signed in to change notification settings - Fork 248
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pyclustering.cluster.dbscan][ccore.dbscan] KD-Tree optimization #369
Labels
Enhancement
Tasks related to enhancement and development
Optimization
Tasks related to code optimization
Milestone
Comments
annoviko
added
Enhancement
Tasks related to enhancement and development
Optimization
Tasks related to code optimization
labels
Sep 27, 2017
annoviko
added a commit
that referenced
this issue
Oct 24, 2017
Optimization results for python code:
|
annoviko
added a commit
that referenced
this issue
Oct 25, 2017
annoviko
added a commit
that referenced
this issue
Oct 25, 2017
Result of optimization for CCORE:
Here some debug log that display how many nodes are visited (euclidean distance calculation) for method 'get_neighbors()':
|
Looks like amount of euclidean distance calculation can be reduced - investigation is required - #379. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Enhancement
Tasks related to enhancement and development
Optimization
Tasks related to code optimization
Introduction
KD-Tree is already implemented in the pyclustering library. DBSCAN and OPTICS algorithms always calculate distance between points, it leads to O(n^2) complexity, therefore optimization is required. KD-tree helps to reduce this complexity and increase performance of these algorithm. There are several complains that performance of the algorith is significantly degradate in case of big data.
Resources
Description
KD-Tree optimization should be performed for DBSCAN algorithm for Python code and for C++ implementation.
KD-Tree implementation for Python: 'pyclustering/cluster/kdtree.py'
KD-Tree implementation for C++: 'ccore/container/kdtree.cpp'
The text was updated successfully, but these errors were encountered: