added dbscan implementation following scikit learn's