我对检测密度变化的区域中的集群感兴趣,例如城市中用户生成的数据,为此,我采用了OPTICS算法。
与DBSCAN不同,OPTICS算法不会产生严格的集群分区,而是会增加数据库的顺序。为了产生集群分区,我使用OPTICSxi,这是另一种基于OPTICS输出产生分类的算法。很少有能够从OPTICS的输出中提取集群分区的库,并且ELKI的OPTICSxi实现就是其中之一。
对我来说很清楚,如何解释DBSCAN的结果(尽管设置“有意义的”全局参数并不那么容易)。 DBSCAN检测簇的“原型(prototype)”,其特征是密度,表示为每个区域的点数(分钟/ε)。 OPTICSxi的结果似乎很难解释。
我有时会在OPTICSxi的输出中检测到两种现象,而我无法解释。一种是,“穗状花序”群集的出现,它们链接了 map 的各个部分。我无法解释它们,因为它们似乎是由很少的点组成的,而且我不理解算法是如何决定将它们分组在同一个群集中的。它们真的代表密度变化的“走廊”吗?查看基础数据,看起来不是那样。您可以在下面的图像中看到这些“尖峰”。
我无法解释的另一个现象是有时存在相同层次级别的“重叠”簇。 OPTICSxi基于数据库的OPTICS排序(例如树状图),该图中没有重复的点。
由于这是分层聚类,因此我们认为较低级别的群集包含较高级别的群集,并且在构建凸包时会强制执行该想法。但是,我看不出有在同一个层次级别上与其他集群相交的集群的任何理由,这实际上意味着某些点将具有双重集群“成员资格”。在下面的图像中,我们可以看到一些具有相同层次级别(0)的相交群集。
最后,我想与您讨论的最重要的想法/问题是:我们希望在OPTICSxi聚类分类中看到什么? 这个问题与参数化OPTICSxi的任务紧密相关。
由于我几乎看不到针对特定聚类问题进行OPTICSxi的任何研究,因此我很难找到最佳聚类分类。即:它可以提供一些有意义/有用的结果,并为DBSCAN集群增加一些值(value)。为了帮助我回答这个问题,我使用不同的参数组合进行了多次OPTICSxi运行,并选择了三个参数进行讨论。
在此运行中,我使用了较大的epsilon(2Km)。该值的含义是我们接受大型群集(最大2Km);由于算法“合并”了簇,因此我们最终会得到一些非常大的簇,这些簇几乎肯定具有较低的密度。我喜欢此输出,因为它公开了分类的层次结构,并且实际上使我想起了具有不同参数组合(针对不同密度)的几次运行DBSCAN,这是OPTICS的广告“强度”。如前所述,较小的群集对应于层次结构级别中的较高级别和较高的密度。
在此运行中,即使“contrast”参数与上一次运行相同,我们也会看到大量的簇。这主要是因为我选择的Minpts数量较少,这表明我们接受的点数较少的聚类。由于这种情况下的epsilon较短,因此我们看不到这些大型簇占据了 map 的很大一部分。我发现此输出不如前一个有趣,这主要是因为,即使我们具有分层结构,在同一级别上也有许多聚类,并且其中许多相交。在解释方面,我可以看到一个与上一个相似的整体“形状”,但实际上在许多小簇中却离散了,这些簇很容易被忽略为“噪音”。
此运行具有一个与上一个相似的参数选择,不同之处在于分钟数更大。结果是,不仅我们发现了更少的集群,而且它们的重叠较少,而且它们大多处于同一水平。
从为DBSCAN增加值(value)的角度来看,我将选择第一个参数组合,因为它提供了数据的层次结构图,清楚地显示了哪些区域更密集。恕我直言,最后一个参数组合无法提供密度的全局分布的概念,因为它在整个研究区域内都发现了相似的簇。我有兴趣阅读其他意见。
最佳答案
从OPTICS图中提取聚类的问题是cluter的第一个和最后一个元素。仅从图上,您就无法(据我所知)决定最后一个元素是否应属于先前的簇。
考虑这样的情节
*
* *
* *
* **
**************
A B C D EF G H
这可以是一个群集,其中A恰好在中间,B-E在其附近,F是完全不同的群集中最接近的元素。例如,数据集可能如下所示:
* D *
B A E F G
* C H *
或者,A在第一个簇的边缘,B-D是簇的一部分,而E是将间隙桥接到簇F-H的离群元素。
导致这种影响的数据集可能看起来像这样:
D * *
* C B A E F G
E * H *
OpticsXi视觉操作。 F是要分割的“更陡峭”的点,因此E在每种情况下都将是第一个群集的一部分。从字面上看,这是OpticsXi无需查看数据点就能做出的最佳猜测。
这可能是导致您一直观察到的尖峰的影响。
我看到四个选项: