我正在尝试实现DBSCAN,但我无法理解它背后的想法。如果它逐个遍历整个数据,并为近邻创建一个新的集群,那么我总是会得到很多集群。假设它检查第一点的近邻,找到足够多的邻居(>MinPts),为它们创建一个集群,移动到下一个点,检查邻居(可能还会找到已经在集群中的邻居)并为它们创建一个新的集群。诸若此类。因此,某些点将被添加到多个集群.因此,许多集群将被创建。
有人能解释一下这个算法是如何工作的吗?我在网上没有找到多少关于它的信息。
发布于 2014-05-22 15:16:22
不,创建了一个集群之后,您将看到集群中的点,如果它们中的任何一个都有足够的密度来拥有自己的集群,那么“原始集群”中的所有点都会添加到原始集群中。以这种方式,它继续聚集,直到密度下降,从而增加点,缺乏足够的邻接点来继续这一过程。完成此操作后,集群中的所有点都将被市场“关闭”,该过程将重新开始在剩余的“开放”节点中寻找新的集群。
发布于 2014-05-22 21:12:13
网上有很多关于DBSCAN的资料。即使你查看维基百科,你也可以找到一个详细的算法:
http://en.wikipedia.org/wiki/DBSCAN#Algorithm
你用哪种语言对它进行编码?如果您熟悉matlab、java或r,有大量的在线实现,也许可以帮助您.
一个很好的来源应该是原始文件..。
https://stackoverflow.com/questions/23810601
复制相似问题