1

我有一个看似微不足道的问题。我需要有人为我澄清ELKI 实现中 DBSCAN MinPts 参数的含义。

如果我使用k = 4 的值来绘制已排序的k -dist 图,则它表示点p到其第 4 个最近邻的距离。这意味着邻域包含 5 个点 ( k + 1);4 个邻居加上点p

在 ELKI 中,MinPts是仅表示邻居还是还包括点p?在上述情况下,应该设置为 4 还是 5?

最初的DBSCAN 论文(Ester et al. 1996)谈到将 MinPts 设置k(MinPts = 4)。DBSCAN Wikipedia 文章似乎也暗示MinPts指的是 p 周围的邻居。然而,ELKI 似乎期望MinPts设置为k + 1 ( MinPts = 5)。

有人请澄清。

4

1 回答 1

4

参数pro包括查询点:

如果您在数据库上下文中,并且您向数据库发送查询

选择坐标 x,y,z 周围 r 半径内的所有对象

然后数据库包括查询点如果它存储在数据库中。特别是,如果不希望包含它,您可以轻松删除它。从数据库的角度来看,查询应该包括查询点,如果它在数据库中,而不是,如果它没有存储在数据库中。

更重要的是,如果您进行密度估计,那么每个数据点都应该对密度做出贡献,不是吗?为什么会有一点特别?具有完全相同坐标的其他点呢?如果您估计不在数据库中的点的密度怎么办?如果您稍微远离查询点,您会看到密度突然增加!

如果您尝试将 k-最近邻定义为对数据库 D 的查询,并且要求查询点 x 是数据库的一部分,那么很自然地,结果应该包括查询点(如果它是一部分)的 D。

参数contra包括查询点:

另一方面,1-最近邻通常是查询点是违反直觉的。通常,不幸的是,当您在寻找“最近的邻居”时,您意思是“最近的其他对象”。即使这将正式转换为“在没有我的查询点的情况下,我的数据库中查询点坐标最近的对象”。

在文献中不一致的使用:

不幸的是,这在文学作品中并没有得到一致的使用。一些文章/作者/应用程序包含查询点,而有些则不包含查询点。对于这两种情况,我可以从文献中举出很多例子。

甚至一篇文章有​​时也会在一个图中包含查询点,而在另一个图中不包含!

永远不会有一个符合每个人期望的解决方案,因为不幸的是,人们对什么是“正确的”确实有不同的想法。

要具体,并仔细检查!

您将必须决定希望的行为是什么,并仔细检查所有内容是否符合您的预期。记录您的决定和观察结果。

请检查自己是否在 ELKI 中实现 k 距离图包括查询点。我们甚至可能(已经)在 0.7 或 0.8 版本中更改了此类的行为;所以对我来说可能和你不同。真的,真的看看你正在使用的确切版本的来源。

如果 k 距离图不包含查询点,则需要使用 3 距离minPts=4。如果确实包含查询点,则 4-distance 与 一致minPts=4。我很确定 DBSCAN确实出于上述原因(数据库的观点、密度估计的观点)计算了查询点。因此对于 DBSCAN,minPts=1 是无意义的(每个点都是核心点),而 minPts=2 是单链接聚类(合并任何 epsilon-neighbors)。只有在 minPts > 2 时,您才开始获得真正的 DBSCAN 结果。

GDBSCAN 建议使用2*dim-1而不是 4;我通常从 开始minPts=10,然后尝试20。选择更大的有几个原因minPts

  • 更高的维度通常需要更大的维度minPts(但对于文本数据,维度是没有意义的——最多由固有维度选择)
  • 噪音:您的数据越嘈杂,您需要使用的数据就越高minPts
  • 重复:如果你有很多重复,你再次需要增加minPts

但不要过头。查询半径较大时,索引效率会大幅下降。您想选择minPts尽可能小,同时仍然获得有趣的结果。还要使用多个值,以获得不同的视图。

请记住,聚类是探索性数据挖掘。它旨在要求您对参数进行试验,并研究结果,然后重复。因为没有正确的聚类结果。聚类结果的质量是您是否可以对数据有新的见解。仅再现已知结果的聚类实际上已经失败。

于 2015-08-18T10:42:37.903 回答