【问题标题】:OPTICSXi - ELKI ResultWriterOPTICSXi - ELKI ResultWriter
【发布时间】:2013-12-19 21:24:55
【问题描述】:

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

【问题讨论】:

    标签: data-mining cluster-analysis hierarchical-clustering elki


    【解决方案1】:

    所以,如果我理解得很好,在上面的例子中,集群是由元素组成的 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}。我使用集群的可视化,但找不到好的结果。我遇到了很多麻烦。

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

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

    【讨论】:

    • 你可能想把它移到上面的问题中;你应该可以编辑它。
    • 第一个元素始终是集群中至少一个元素的前驱;并且最后一个在集群中有一个前任。否则,OpticsXi 不应考虑将它们包含在内。然而,第一个和最后一个元素可能是集群中“最差”的成员。它们不是完全随机的,但它们可能更适合前一个、下一个或 parent 集群。如果您尝试详细了解 Xi 方法,您也会不明白为什么会这样。
    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

    • 根元素呢?我在根文件中有很多孩子和很多节点(ID)。我曾考虑将根节点的每个子节点视为一个集群。但是如何处理文件中的地理位置?
    • 根集群包含所有内容。那里列出的元素是“噪音”,而不是集群。
    • 感谢您的回复。那么,簇数是否等于根元素的子元素数?
    • 没有。集群可以嵌套在多个层次的集群中。
    • 没有。 它们都是集群。甚至是根。 OPTICS 是一种分层聚类算法,而不是像 k-means 这样的“平面”严格划分方法。它可以有clusters-in-clusters-in-clusters-in-clusters。其中有些很有趣,有些则不然。整个数据集是一个“集群”,但不是很有趣。
    猜你喜欢
    • 2013-12-02
    • 2015-06-25
    • 2015-05-04
    • 2014-08-13
    • 1970-01-01
    • 2013-02-28
    • 2014-07-30
    • 2017-09-04
    • 1970-01-01
    相关资源
    最近更新 更多