DBSCAN code C#或vb.net,聚类分析code、DBSCAN、net、vb

2023-09-11 04:06:49 作者:滚不滚随你

请我需要你们的支持劝告库或code在vb.net或C#.NET的应用DBSCAN使数据Denisty的群集。我有一个GPS数据,我想找到留下来使用DBSCAN算法点。但是,我不明白许多算法的技术部分。

Kindly I need your support to advice a library or a code in vb.net or C#.net that applies the DBSCAN to make Denisty Based Cluster of data . I have a GPS data , and I want to find stay points using the DBSCAN algorithm . But , I do not understand much of the technical part of the algorithm.

推荐答案

不知道这就是你要找的内容,因为该算法是非常好上的维基。你想的算法或它的翻译(或好库)在C#中的一个交代?

Not sure that's what you're looking for because the algorithm is very well explain on wikipedia. Do you want an explaination of the algorithm or a translation(or good library) of it in C# ?

您可以看看普通聚类算法了。

让说你选择了小量和元素的数量开始集群为4。

Let say you chose epsilon and the number of element to start a cluster is 4.

您需要定义一个距离函数,一个DBSCAN功能和扩展集群功能:

You need to define a distance function, a DBSCAN function and an expand cluster function:

从维基百科:

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

您点的列表:

第一:选择一个随机点:

在小量测试(小量是圆的半径),如果点的数量是4。如果是启动群集(绿色),否则标记为噪声(红色):( fonction DBSCAN每个访问过的点) 箭头显示您访问过的所有点

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

二:展开集群:一旦你找到一个簇标记所有点绿,在这一组检查更多的积分

secondly: Expand cluster : once you find a cluster mark all the point green and check for more points in this cluster

注意:一原噪声点可以在集群变为绿色,如果

2红点实际上是在一个集群中...

the 2 red point are actually in a cluster ...

一旦您完成所有的点去你停止

Once you went through all the points you stop