7

I'm having issue with using OPTICS implementation in ELKI environment. I have used the same data for DBSCAN implementation and it worked like a charm. Probably I'm missing something with parameters but I can't figure it out, everything seems to be right.

Data is a simple 300х2 matrix, consists of 3 clusters with 100 points in each.

DBSCAN result:

Clustering result of DBSCAN

MinPts = 10, Eps = 1

OPTICS result:

Clustering result of OPTICS

MinPts = 10

4

2 回答 2

4

@AnonyMousse 说得很对。我还不能投票或评论。

我们希望随着时间的推移,让一些学生将其他聚类提取方法作为小型学生项目贡献出来。它们对于我们的研究来说不是必不可少的,但对于想要了解 ELKI 入门的学生来说,它们是很好的任务。

ELKI 是一个快速发展的项目,它源于社区的贡献。我们很高兴看到您为它贡献一些代码。我们知道代码库上手并不容易——它相当大,而且实现的普遍性和对索引结构的支持使得上手有点困难。我们尝试添加教程以帮助您入门。一旦你习惯了它,你实际上会从架构中受益:你的算法获得索引和任意距离函数的好处,而如果你从头开始实现,你可能只支持欧几里德距离,而不支持索引加速。

看到你在OPTICS上苦苦挣扎,我会在新的一年尝试写一篇OPTICS教程。特别是,OPTICS 可以从使用适当的索引结构中受益匪浅。

于 2012-12-31T14:19:35.627 回答
4

您显然已经自己找到了解决方案,但长话短说:

ELKI 中的OPTICS类只计算集群顺序/可达性图。

为了提取集群,您有不同的选择,其中之一(来自原始 OPTICS 出版物的那个)在 ELKI 中可用。

因此,为了在 ELKI 中提取集群,您需要使用该OPTICSXi算法,该算法将依次使用OPTICS或基于索引DeLiClu来计算集群顺序。

在 ELKI 中将其分为两部分的原因可能是一方面您可以实现另一种提取集群的逻辑,另一方面实现不同的方法,例如DeLiClu计算集群顺序。这将与 ELKI 的模块化架构非常吻合。

IIRC 至少还有一种方法(显然在 ELKI 中还没有)通过寻找局部最大值来提取集群,然后水平扩展它们直到它们到达山谷的尽头。还有一个不同的使用情节的“拐点”。

于 2012-12-25T22:45:27.020 回答