2

我正在使用 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 中指定一些参数来获取每个集群?

4

2 回答 2

2

默认情况下,ELKI 将生成一个目录,每个集群有一个文件。除非输出文件已经存在,在这种情况下,您会将所有集群写入同一个文件,并用上面的注释分隔。

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

比较输出的OPTICSXi输出OPTICS。Xi 方法的作用是根据可达距离的突然下降为您拆分数据。Xi 的所有集群都应该是原始 OPTICS 集群顺序的子序列。

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

另请注意,您通常需要验证是否希望集群的第一个元素属于集群;类似的最后一个元素。OPTICSXi倾向于在第一个元素上犯错,但不是以一种容易修复的系统方式。第一个和最后一个元素是那些弥合从一个集群到另一个集群的差距的元素。你真的应该手动验证这些(这是不要选择minPts太小的一个很好的理由)。

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

于 2013-12-03T20:32:43.553 回答
0

所以,如果我理解得很好,在上面的例子中,集群是由元素组成的 ID=1, ID=3062, ID=7383, ID=42839, and all the elements in nameOfChild_0, nameOfChild_1 ... nameOfChild_n。也许,我不必在根元素中加入子元素,因为我想我会获得一个包含我所有地理位置的唯一大集群,实际上我有 903 个子元素和 18795 个节点(ID)。

我做了很多测试,选择minPoint = {2,5,10}xi = {0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001}. 我使用集群的可视化,但找不到好的结果。我有很多麻烦。

感谢您的回复,我了解到我将元素拆分得太多了,因为对我来说每个文件都是一个集群,因此我不考虑父元素中的子元素,但我认为它们是分开的集群。

此外,我注意到第一个和最后一个元素有时是错误的,我想验证这些元素是否是集群中至少一个元素的前身,或者集群中的至少一个元素是这些元素的前身。这有意义吗?

于 2013-12-04T09:40:56.363 回答