{"id":16752362,"url":"https://github.com/whizsid/kddbscan-rs","last_synced_at":"2025-04-10T15:52:20.029Z","repository":{"id":62441597,"uuid":"268095427","full_name":"whizsid/kddbscan-rs","owner":"whizsid","description":"A rust library inspired by kDDBSCAN clustering algorithm","archived":false,"fork":false,"pushed_at":"2020-06-13T15:19:37.000Z","size":40,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T13:37:48.673Z","etag":null,"topics":["clustering","data-science","density-based-clustering","deviation","machine-learning-algorithms","pinned"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/whizsid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-30T14:26:12.000Z","updated_at":"2024-12-21T13:04:35.000Z","dependencies_parsed_at":"2022-11-01T22:15:25.551Z","dependency_job_id":null,"html_url":"https://github.com/whizsid/kddbscan-rs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whizsid%2Fkddbscan-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whizsid%2Fkddbscan-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whizsid%2Fkddbscan-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whizsid%2Fkddbscan-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whizsid","download_url":"https://codeload.github.com/whizsid/kddbscan-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248245367,"owners_count":21071470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clustering","data-science","density-based-clustering","deviation","machine-learning-algorithms","pinned"],"created_at":"2024-10-13T02:46:46.282Z","updated_at":"2025-04-10T15:52:20.013Z","avatar_url":"https://github.com/whizsid.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kddbscan-rs \n[![GitHub Actions](https://github.com/whizsid/kddbscan-rs/workflows/Main/badge.svg)](https://github.com/whizsid/kddbscan-rs/actions) [![crates.io](http://meritbadge.herokuapp.com/kddbscan)](https://crates.io/crates/kddbscan) [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) [![Released API docs](https://docs.rs/kddbscan/badge.svg)](http://docs.rs/kddbscan) [![Master API docs](https://img.shields.io/badge/docs-master-green.svg)](https://docs.rs/kddbscan)\n\nRust implementation of the kddbscan clustering algorithm.\n\nFrom the authors of kDDBSCAN algorithm.\n\n\u003e Due to the adoption of global parameters, DBSCAN fails to\n\u003e identify clusters with different and varied densities. To\n\u003e solve the problem, this paper extends DBSCAN by exploiting\n\u003e a new density definition and proposes a novel algorithm\n\u003e called k -deviation density based DBSCAN (kDDBSCAN). Various\n\u003e datasets containing clusters with arbitrary shapes and\n\u003e different or varied densities are used to demonstrate the\n\u003e performance and investigate the feasibility and practicality\n\u003e of kDDBSCAN. The results show that kDDBSCAN performs\n\u003e better than DBSCAN.\n\n[Read More](https://www.researchgate.net/publication/323424266_A_k_-Deviation_Density_Based_Clustering_Algorithm)\n\n## Installation\n\nAdd `kddbscan` as a dependency in your `Cargo.toml` file\n\n```toml\n[dependencies]\nkddbscan = \"0.1.0\"\n```\n\n## Usage\n\nImplement `IntoPoint` trait on your point struct. And pass a vector of points to the `cluster` function.\n\n```rust\nuse kddbscan::{cluster, IntoPoint, ClusterId};\n\npub struct Coordinate {\n    pub x: f64,\n    pub y: f64,\n}\n\nimpl IntoPoint for Coordinate {\n    fn get_distance(\u0026self, neighbor: \u0026Coordinate) -\u003e f64 {\n        ((self.x - neighbor.x).powi(2) + (self.y - neighbor.y).powi(2)).powf(0.5)\n    }\n}\n\nfn main() {\n    let mut coordinates: Vec\u003cCoordinate\u003e = vec![];\n    coordinates.push(Coordinate { x: 11.0, y: 12.0 });\n    coordinates.push(Coordinate { x: 0.0, y: 0.0 });\n    coordinates.push(Coordinate { x: 12.0, y: 11.0 });\n    coordinates.push(Coordinate { x: 11.0, y: 9.0 });\n    coordinates.push(Coordinate { x: 10.0, y: 8.0 });\n    coordinates.push(Coordinate { x: 1.0, y: 2.0 });\n    coordinates.push(Coordinate { x: 3.0, y: 1.0 });\n    coordinates.push(Coordinate { x: 4.0, y: 4.0 });\n    coordinates.push(Coordinate { x: 9.0, y: 0.0 });\n\n    let clustered =  cluster(coordinates, 2, None, None);\n}\n```\n\n## Showcase\n\nThis is the output of example project.\n\n![Output of the kddbscan algorithm](./example/result.png)\n\n## Contribution\n\nAll PRs and issues are welcome. and starts are also welcome.\n\n## License\n\nThis project is under the MIT license and the algorithm is under the CC BY 4.0 license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhizsid%2Fkddbscan-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhizsid%2Fkddbscan-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhizsid%2Fkddbscan-rs/lists"}