TheAlgorithms / Python

All Algorithms implemented in Python
https://thealgorithms.github.io/Python/
MIT License
192.4k stars 45.38k forks source link

Feature Request: Implement DBSCAN Algorithm #10683

Closed Harsh-Avinash closed 1 year ago

Harsh-Avinash commented 1 year ago

Feature description

I would like to propose the implementation of the DBSCAN (Density-Based Spatial Clustering of Applications with Noise) algorithm in the repository. DBSCAN is a powerful clustering algorithm that has distinct advantages over K-Means for specific use cases. It can discover clusters of arbitrary shapes, handle outliers and noisy datasets effectively, and does not require specifying the number of clusters in advance, making it a valuable addition to the repository.

Feature Details:

Algorithm: DBSCAN is a density-based clustering algorithm that has the following key characteristics:

Implementation: I am willing to contribute to this feature request by implementing the DBSCAN algorithm from scratch. This would involve creating a new Python module or directory dedicated to DBSCAN, including the necessary code, documentation, and test cases.

Expected Benefits: The addition of the DBSCAN algorithm to the repository will provide users with a more diverse set of clustering algorithms to choose from. This can be especially valuable for those working with datasets where K-Means' assumptions may not hold or when dealing with noisy data. DBSCAN's ability to discover clusters of arbitrary shapes and handle outliers can be a valuable asset for various data analysis tasks.

Proposed Implementation Steps:

  1. Create a dedicated directory or module for DBSCAN within the repository's structure.
  2. Implement the DBSCAN algorithm in Python, adhering to coding standards and best practices.
  3. Provide comprehensive documentation, including explanations of the algorithm, usage examples, and any required dependencies.
  4. Create unit tests to ensure the correctness and reliability of the DBSCAN implementation.
  5. Add the necessary documentation and update the repository's README to include information about the new feature.

Contributor Request: I am interested in taking ownership of this feature request and actively contributing to its implementation. I am familiar with the DBSCAN algorithm and have experience with Python programming. I am committed to following the repository's guidelines and collaborating with the maintainers and the community to ensure the successful integration of DBSCAN into the project.

sivani-kesara commented 1 year ago

Hi @Harsh-Avinash, I am interested in working on this issue. I have experience with Python programming and learnt about the DBSCAN algorithm, and I am interested in contributing to this feature. If you're interested in collaborating on this project, please let me know.

tianyizheng02 commented 1 year ago

Please read our contributing guidelines.

Do not create an issue to contribute an algorithm. Please submit a pull request instead.