DBSCAN code in C # or vb.net, for cluster analysis

I need your support to advise a library or code in vb.net or C # .net that uses DBSCAN to create Denisty-based clustered data. I have GPS data and I want to find breakpoints using DBSCAN algorithm. But I do not really understand the technical part of the algorithm.

+5
source share
2 answers

Not sure what you are looking for because the algorithm explains wikipedia very well . Do you want to explain the algorithm or translation (or good library) of this in C #?

You can also take a look at the general clustering algorithm .

Algorithm

Suppose you select epsilon, and the number of elements to start the cluster is 4.

You need to define the distance function, DBSCAN function, and cluster extension function:

from wikipedia:

DBSCAN(D, eps, MinPts)
   C = 0
   for each unvisited point P in dataset D
      mark P as visited
      N = getNeighbors (P, eps)
      if sizeof(N) < MinPts
         mark P as NOISE
      else
         C = next cluster
         expandCluster(P, N, C, eps, MinPts)

expandCluster(P, N, C, eps, MinPts)
   add P to cluster C
   for each point P' in N 
      if P' is not visited
         mark P' as visited
         N' = getNeighbors(P', eps)
         if sizeof(N') >= MinPts
            N = N joined with N'
      if P' is not yet member of any cluster
         add P' to cluster C

You have a list of items:

First: randomly select a random:

Epsilon testing (Epsilon is the radius of the circles) if the number of points is 4. If yes, start the cluster (green), otherwise mark as noise (red): (fonction DBSCAN for each unvisited point) The arrows show all the points that you visited .

enter image description here

secondly: expand the cluster: after you find that the cluster will mark all the points in green and check more points in this cluster

enter image description here

: ,

enter image description here

2 ...

enter image description here

,

+17

OPTICS, DBSCAN, epsilon ( , - 1 ).

DBSCAN, , , .

+1

All Articles