如何实现DBSCAN聚类算法?

时间:2014-05-22 15:06:04

标签: algorithm cluster-analysis dbscan

我正在尝试实施DBSCAN,但我无法理解其背后的想法。如果它逐个遍历整个数据并为近邻创建一个新的集群,那么我将总是得到很多集群。假设它检查第一点的近邻,找到足够的邻居(> MinPts),为它们创建一个集群,移动到下一个点,检查邻居(也可能找到已经在集群中的邻居)和为他们创建一个新的集群。等等。因此,一些点将被添加到多个集群中...因此将创建许多集群。

有人可以解释一下这个算法是如何工作的吗?我没有在网上找到太多关于它的信息。

2 个答案:

答案 0 :(得分:0)

不,创建了一个集群,然后查看集群中的点,如果它们中的任何一个具有足够的密度来拥有自己的集群,那么“proto-cluster”中的所有点都会添加到原始集群中。簇。以这种方式,它继续凝聚,直到密度降低,使得添加的点缺乏足够的相邻点以继续该过程。完成此操作后,该群集中的所有点都将被市场“关闭”,并且该流程将重新开始在剩余的“打开”节点中查找新群集。

答案 1 :(得分:0)

网上有很多DBSCAN资料......即使您查看维基百科,也可以找到详细的算法:

http://en.wikipedia.org/wiki/DBSCAN#Algorithm

您使用哪种语言对其进行编码?如果您熟悉matlab,java或r,那么在线有很多实现,也许可以帮助您...

一个很好的资源来源是原始论文......