DBSCAN clustering algorithm implementation

41 views
Skip to first unread message

Camilo Roca

unread,
Dec 28, 2015, 6:52:58 PM12/28/15
to Incanter
Hey guys,
As part of a project of mine I wrote a DBSCAN implementation in clojure. The implementation differs a bit from the
original paper as the original algorithm does a lot of in-place mutation nevertheless the logic behind it is the same.

I created the algorithm with flexibility in mind so you can use customized distance and region-query functions.

I know that there already exist some implementations in Java (weka, elki) but I wanted to implement it in Clojure
to leverage its STM capabilities and simplicity specially for the region-query function and possibly in the future to implement a
parallel DBSCAN as stated in: http://www.cs.ucsb.edu/~veronika/MAE/scalableparalleldbscan_patwary12.pdf

The algorithm has so far not been tested thoroughly so I would like to hear your opinion regarding
its implementation and possible some obvious performance bottlenecks (since I'm relatively new to Clojure).

You can find the implementation here: https://github.com/carocad/dbscan.clj

There is currently no clojar since I have not done any extensive testing with it. As soon as I create some (generative)
testing and check that it works as expected I will upload it.

cheers,
Camilo
Reply all
Reply to author
Forward
0 new messages