据说DBSCAN在边界点上并不一致,取决于它首先指定哪个群集。 是否存在DBSCAN的变体,它考虑了每个群集中边界点接近(eps)的点数,当它想要将边界点分配给其中一个群集时?
答案 0 :(得分:1)
在重要的情况下,每个两个集群的点数通常为1。
更好的领带破坏者将是距离,但即便如此也可以有联系。
这是一个微不足道的修改,很容易在后处理中实现:对于每个边界点,找到最近的核心点,并使用该标签。
然而,重要吗?
群集永远不会完美。我们在这里谈论一个罕见的情况,其中最好的" (对于"最佳",基于两个硬阈值)的相当特别的定义,分配通常会使0.000差异到最终结果。
如果我没有弄错的话,DBSCAN作者建议你也可以将这些点分配给两个群集。这应该是最符合定义的解决方案(边界点 可从两个集群中到达)。但它使一切变得更加复杂。因为许多用户希望每个点在一个漂亮的数字列中都有一个标签,而不必处理这种特殊情况。
答案 1 :(得分:1)
有点晚了,但仍然是:首先,边界点本身必须是核心点,因为在其epsilon邻域中必须至少有另外一个对象,可以直接从该对象达到密度。否则它将无法连接到群集。
根据定义,DBSCAN结果是确定性的。核心点和噪声点,但没有边界点,因此:如果一个边界点可以从两个群集中密度到达,则实际上取决于处理或您的实现,将其分配给哪个群集。