我有一个看似微不足道的问题。我需要有人为我澄清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)。

有人请澄清。

最佳答案

包含查询点的参数pro:

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


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


如果数据库中存储了查询点,则该数据库将包括查询点。特别是,如果不希望包含它,则可以轻松删除它。从数据库的角度来看,如果查询在数据库中,则查询应包括查询点;如果数据库中未存储查询,则查询应不包括查询点。

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

如果您尝试将k-nearest-neighbors定义为对数据库D的查询,并且不要求查询点x成为数据库的一部分,那么很自然地得出结果,如果该查询是x的一部分,则结果应包括查询点D。

包含查询点的参数相反:

另一方面,直觉最接近的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,同时仍能得到有趣的结果。也可以使用多个值来获取不同的视图。

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

08-20 02:09