【问题标题】:How to implement DBSCAN clustering algorithm?DBSCAN聚类算法如何实现?
【发布时间】:2014-07-11 17:07:53
【问题描述】:

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

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

【问题讨论】:

  • 密切关注维基百科的伪代码。一个集群可能包含多个核心点。一个集群由所有密度连接点组成,而不仅仅是那些从一开始就可以直接密度到达的点。

标签: algorithm cluster-analysis dbscan


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    您使用哪种语言编写代码?如果你熟悉matlab、java或r,网上有很多实现,或许能帮到你……

    原始论文是一个很好的起点...

    【讨论】:

      猜你喜欢
      • 2019-07-11
      • 2020-02-14
      • 2018-09-30
      • 2019-12-10
      • 2020-03-10
      • 2011-08-06
      • 2014-04-21
      • 2011-07-27
      • 2014-02-02
      相关资源
      最近更新 更多