wal*_*rem 5 c# algorithm gps cluster-analysis dbscan
我需要你的支持来建议vb.net或C#.net中的库或代码,它们应用DBSCAN来制作基于Denisty的数据集群.我有GPS数据,我想使用DBSCAN算法找到停留点.但是,我对算法的技术部分了解不多.
Ric*_*bby 17
不确定这是你正在寻找什么,因为该算法在维基百科上得到很好的解释.你想要在C#中解释算法或它的翻译(或好的库)吗?
您也可以查看一般的聚类算法.
假设您选择了epsilon,启动集群的元素数量为4.
您需要定义距离函数,DBSCAN函数和扩展集群函数:
来自维基百科:
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
Run Code Online (Sandbox Code Playgroud)
你有一个点列表:
第一:随机选择一个点:
在小量测试(小量是圆的半径),如果点的数量为4.如果是启动群集(绿色),否则标记为噪声(红色):( fonction DBSCAN每个未访问点)的箭头表示的所有点你去过了

其次:展开群集:一旦找到群集标记所有点绿色并检查此群集中的更多点

注意:如果在群集中,以前的噪声点可以更改为绿色

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

一旦你完成所有你停止的点数