在DBSCAN中,如何确定边界点?

时间:2014-11-03 09:33:40

标签: machine-learning dbscan

在DBSCAN中,核心点被定义为在Eps内具有超过MinPts。

因此,如果MinPts = 4,则Eps中总共5个点的点肯定是核心点。 在Eps中有4个点(包括其自身)的点数怎么样?它是核心点还是边界点?

3 个答案:

答案 0 :(得分:1)

边界点是(在DBSCAN中)群集的一部分,但不是密集的(即每个群集成员核心点)。< / p>

在后续算法HDBSCAN中,边界点的概念被丢弃了。

  

Campello,R。J. G. B。; Moulavi,D。; 桑德,J 。 (2013)。
  基于层次密度估计的基于密度的聚类。
  第17届太平洋 - 亚洲数据库知识发现会议论文集,PAKDD 2013.计算机科学讲义7819。 160。   DOI:10.1007 / 978-3-642-37456-2_14

指出:

  

我们的新定义更符合群集的统计解释,因为密度边界对象的水平集的连通分量在技术上并不属于水平集(它们的估计密度低于阈值)。

答案 1 :(得分:0)

这在很大程度上取决于实施。最好的方法是自己玩实现。

在原始DBSCAN 1 论文中,核心点条件以N_Eps&gt; = MinPts给出,其中N_Eps是某个数据点的Epsilon邻域,其从其自己的N_Eps中排除。

按照你的例子,如果MinPts = 4且N_Eps = 3(或者说你自己包含4个),那么它们根据原始论文不会形成一个簇。另一方面,DBSCAN的scikit-learn 2 实现其他方式,这意味着它计算形成一个组的点本身。因此,对于MinPts = 4,总共需要四个点来形成一个簇。

[1] Ester,Martin; Kriegel,Hans-Peter;桑德,约尔格;徐小伟(1996)。 “基于密度的算法,用于在具有噪声的大型空间数据库中发现聚类。”

[2] http://scikit-learn.org

答案 2 :(得分:0)

实际上,我只是重新阅读了原始论文,定义1使它看起来像核心点属于它自己的eps邻居。因此,如果minPts是4,那么一个点在其eps邻域中至少需要3个其他点。

注意在定义1中他们说NEps(p)= {q∈D| dist(p,q)≤Eps}。如果该点被排除在其eps邻域之外,那么它会说NEps(p)= {q∈D| dist(p,q)≤Eps和p!= q}。其中!=“不等于”。

DBSCAN的作者在图4中的OPTICS论文中也强化了这一点。http://fogo.dbs.ifi.lmu.de/Publikationen/Papers/OPTICS.pdf

所以我认为SciKit的解释是正确的,维基百科插图在http://en.wikipedia.org/wiki/DBSCAN

中有误导性