我正在使用ELKI使用OPTICSXi以分层方式将地理位置数据集聚类。
算法执行的结果是一组文件。

文件的内容可以是:

# Cluster: nameOfCluster
# OPTICSModel
# Parents: nameOfParents (this element doesn't exist for the root cluster)
# Children: nameOfChild_0, nameOfChild_1 ... nameOfChild_n, (optional)
ID=1 lat0 lon0 reachability=?
ID=3062 lat1 lon1 reachability=1.30972586 predecessor=1
ID=7383 lat2 lon2 reachability=2.56784445 predecessor=3062
ID=42839 lat3 lon3 reachability=4.05510623 predecessor=1


我不明白每个文件中的元素(在示例中有四个元素)是属于同一群集还是可以属于不同的群集。在后一种情况下,我需要编写一些构建集群的代码(例如查看每个节点的前身),或者可以在Elki中指定一些参数来获取每个集群?

最佳答案

默认情况下,ELKI将生成一个目录,每个集群包含一个文件。除非输出文件已经存在,否则将把所有群集写入同一个文件,并用注释分隔,如上所示。

对于分层结果(例如OPTICSXi),您还应将子群集的所有成员也视为父群集的一部分。这些是嵌套在父级中的簇。它们不会在父级中重复,以减少输出中的冗余。

OPTICSXi的输出与OPTICS的输出进行比较。 Xi的作用是,根据可达性距离的突然下降为您拆分数据。 Xi的所有聚类应该是原始OPTICS聚类顺序的子序列。

在您的情况下,如果集群只有4个元素,则您可能选择的minPts太小。 (尽管您可能已截断了文件,或者子群集中可能有很多元素;所以输出可能很好)。

另请注意,您通常将需要验证是否要让集群的第一个元素属于该集群;同样,最后一个元素。 OPTICSXi倾向于犯错误的第一个元素,但不是以系统化的方式修复的。第一个和最后一个元素是弥合从一个群集到另一个群集的差距的那些元素。您确实应该手动验证这些(这是一个很好的理由,不要选择minPts太小)。

我强烈建议针对特定用例构建/使用可视化。然后,您可以将这样的群集加载到可视化文件中,然后目视检查结果是否对您有意义。我在地理数据上使用了OPTICSXi,对我来说效果很好。

关于data-mining - OPTICSXi-ELKI ResultWriter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20357625/

10-13 04:39