Density based clustering algorithm