ELKI中DBSCAN MinPts参数的含义

时间:2015-08-18 06:16:51

标签: machine-learning cluster-analysis data-mining dbscan elki

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

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

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

original DBSCAN paper(Ester et al.1996)谈到将 MinPts 设置为k( MinPts = 4)。 DBSCAN Wikipedia article似乎也暗示 MinPts 指的是 p 周围的邻居。但是,ELKI似乎期望 MinPts 设置为 k + 1( MinPts = 5)。

有人善意地澄清。

1 个答案:

答案 0 :(得分:3)

参数 pro 包括查询点:

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

  

选择坐标x,y,z

周围半径为r的所有对象

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

更重要的是,如果你进行密度估算,那么每个数据点应该对密度有贡献,不应该吗?为什么一点特别?那些具有完全相同坐标的其他点怎么样?如果您在数据库中的点估算密度怎么办?如果你从查询点移开一点点,你会看到密度突然增加!

如果您尝试将k-nearest-neighbors定义为对数据库D的查询,并且 not 要求查询点x成为数据库的一部分,那么它自然会遵循结果应包括查询点,如果它是D的一部分。

参数 contra 包括查询点:

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

在文献中不一致地使用:

不幸的是,这在文献中并未得到一致使用。 一些文章/作者/应用程序做 - 有些不 - 包括查询点。我可以从文献中为两个案例命名大量例子。

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

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

具体,仔细检查!

您必须决定 希望行为是什么,如果行为符合预期,请仔细检查所有内容。 记录您的决定和意见。

请检查自己ELKI中k距离图的实现是否包含查询点。我们甚至可能(已)改变了这个类的行为为0.7或0.8;所以对我而言可能与你不同。 真的,真的看看你正在使用的完全版本的来源。

如果k距离图包含查询点,则需要对minPts=4使用3距离。如果确实包含查询点,则4距离与minPts=4一致。由于上述原因(数据库观点,密度估算的观点),我非常确定DBSCAN 计算查询点数。因此,对于DBSCAN,minPts = 1是无意义的(每个点都是核心点),minPts = 2是单链接聚类(任何epsilon邻居被合并)。仅在minPts> 2你开始获得真正的DBSCAN结果。

GDBSCAN建议使用2*dim-1代替4;我通常从minPts=10开始,然后尝试20。选择较大的minPts

有几个原因
  • 更高维度通常需要更大的minPts(但对于文本数据,维度没有意义 - 最多选择内在维度)
  • 噪音:您的数据越嘈杂,您需要使用minPts
  • 重复:如果您有大量重复项,则需要再次增加minPts

但不要超越。索引效率随着查询半径的增大而显着下降。您希望尽可能小地选择minPts,同时仍然获得有趣的结果。同时使用多个值,以获得不同的观看次数。

请记住,群集是探索性数据挖掘。它意味着要求您试验参数,并研究结果,重复。因为没有正确的群集结果。群集结果的质量是您是否可以在数据上获得新见解。仅复制已知结果的聚类实际上已失败。