ELKI中DBSCAN MinPts参数的含义
Meaning of DBSCAN MinPts Parameter in ELKI
我有一个看似微不足道的问题。我需要有人为我澄清 ELKI 实现中 DBSCAN MinPts 参数的含义。
如果我使用k = 4 的值来绘制排序的k-dist 图,它表示一个点的距离p 到它的第 4 个最近的邻居。这意味着该邻域包含 5 个点 (k + 1); 4个邻居加点p.
在ELKI中,MinPts是只表示邻居还是也包括点p?在上面的例子中,应该设置为4还是5?
original DBSCAN paper (Ester et al. 1996) talks of setting MinPts to k (MinPts = 4). The DBSCAN Wikipedia article 似乎也意味着 MinPts 指的是 p 周围的邻居。然而,ELKI 似乎期望 MinPts 设置为 k + 1 (MinPts = 5)。
有好心人澄清一下。
参数pro包括查询点:
如果您在数据库上下文中,并且向数据库发送查询
Select all objects within a radius of r around coordinates x,y,z
那么数据库会包含查询点,如果它存储在数据库。特别是,如果不希望包含它,您可以轻松将其删除。 从数据库的角度来看,查询应该包括查询点,如果它在数据库中,而不是,如果它没有存储在数据库。
更进一步,如果你做密度估计,那么每个数据点都应该对密度有贡献,不是吗?为什么一分会特别?具有完全相同坐标的其他点呢?如果您在数据库中 而不是 的点估计密度怎么办?如果您稍微远离查询点,您会看到密度突然增加!
如果您尝试将 k 最近邻定义为对数据库 D 的查询,并且 不 要求查询点 x 是数据库的一部分,则很自然地,结果应该包括查询点 if 它是 D.
的一部分
参数反对包括查询点:
另一方面,1-最近邻通常是查询点是违反直觉的。通常,不幸的是,当您查找 "the nearest neighbor" 时,您 做 的意思是 "the nearest other object"。
即使这会正式转换为 "nearest object to the coordinates of my query point in my database without my query point".
在文献中使用不一致:
不幸的是,这在文献中并不一致。
有些 articles/authors/applications 包含查询点,有些则不包含查询点。对于两个案例,我可以从文献中举出很多例子。
即使是一篇文章,有时也会在一张图中包含查询点,而在另一张图中却没有!
永远不会 有一个解决方案可以按照每个人的期望行事,因为人们对 "correct" 有不同的看法,不幸的是。
具体一点,仔细检查!
您必须决定您想要的行为,并仔细检查所有内容是否按照您期望的方式运行。 记录你的决定和观察。
请自行检查ELKI中k距离图的实现是否包含查询点。对于 0.7 或 0.8 版本,我们甚至可能(已经)改变了这个 class 的行为;所以对我来说可能与对你不同。 真的,真的看看你正在使用的确切版本的来源。
如果 k 距离图不 包含查询点,则您需要为 minPts=4
使用 3 距离。如果它 包含 查询点,则 4 距离与 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
,同时仍能得到有趣的结果。另外请使用多个值,以获得不同的视图。
请记住,聚类是 探索性 数据挖掘。它的意思是要求你试验参数,研究结果,重复。因为没有正确的聚类结果。聚类结果的质量取决于您能否对数据获得 新见解。仅重现已知结果的聚类实际上失败了。
我有一个看似微不足道的问题。我需要有人为我澄清 ELKI 实现中 DBSCAN MinPts 参数的含义。
如果我使用k = 4 的值来绘制排序的k-dist 图,它表示一个点的距离p 到它的第 4 个最近的邻居。这意味着该邻域包含 5 个点 (k + 1); 4个邻居加点p.
在ELKI中,MinPts是只表示邻居还是也包括点p?在上面的例子中,应该设置为4还是5?
original DBSCAN paper (Ester et al. 1996) talks of setting MinPts to k (MinPts = 4). The DBSCAN Wikipedia article 似乎也意味着 MinPts 指的是 p 周围的邻居。然而,ELKI 似乎期望 MinPts 设置为 k + 1 (MinPts = 5)。
有好心人澄清一下。
参数pro包括查询点:
如果您在数据库上下文中,并且向数据库发送查询
Select all objects within a radius of r around coordinates x,y,z
那么数据库会包含查询点,如果它存储在数据库。特别是,如果不希望包含它,您可以轻松将其删除。 从数据库的角度来看,查询应该包括查询点,如果它在数据库中,而不是,如果它没有存储在数据库。
更进一步,如果你做密度估计,那么每个数据点都应该对密度有贡献,不是吗?为什么一分会特别?具有完全相同坐标的其他点呢?如果您在数据库中 而不是 的点估计密度怎么办?如果您稍微远离查询点,您会看到密度突然增加!
如果您尝试将 k 最近邻定义为对数据库 D 的查询,并且 不 要求查询点 x 是数据库的一部分,则很自然地,结果应该包括查询点 if 它是 D.
的一部分参数反对包括查询点:
另一方面,1-最近邻通常是查询点是违反直觉的。通常,不幸的是,当您查找 "the nearest neighbor" 时,您 做 的意思是 "the nearest other object"。 即使这会正式转换为 "nearest object to the coordinates of my query point in my database without my query point".
在文献中使用不一致:
不幸的是,这在文献中并不一致。 有些 articles/authors/applications 包含查询点,有些则不包含查询点。对于两个案例,我可以从文献中举出很多例子。
即使是一篇文章,有时也会在一张图中包含查询点,而在另一张图中却没有!
永远不会 有一个解决方案可以按照每个人的期望行事,因为人们对 "correct" 有不同的看法,不幸的是。
具体一点,仔细检查!
您必须决定您想要的行为,并仔细检查所有内容是否按照您期望的方式运行。 记录你的决定和观察。
请自行检查ELKI中k距离图的实现是否包含查询点。对于 0.7 或 0.8 版本,我们甚至可能(已经)改变了这个 class 的行为;所以对我来说可能与对你不同。 真的,真的看看你正在使用的确切版本的来源。
如果 k 距离图不 包含查询点,则您需要为 minPts=4
使用 3 距离。如果它 包含 查询点,则 4 距离与 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
,同时仍能得到有趣的结果。另外请使用多个值,以获得不同的视图。
请记住,聚类是 探索性 数据挖掘。它的意思是要求你试验参数,研究结果,重复。因为没有正确的聚类结果。聚类结果的质量取决于您能否对数据获得 新见解。仅重现已知结果的聚类实际上失败了。