OPTICS(聚类)算法的 Python 实现

标签 python machine-learning cluster-analysis data-mining optics-algorithm

我正在寻找一个不错的 OPTICS 的实现。 Python中的算法。我将使用它来形成基于密度的点簇((x,y) 对)。

我正在寻找可以接收 (x,y) 对并输出集群列表的东西,其中列表中的每个集群都包含属于该集群的 (x,y) 对列表。

最佳答案

我不知道 OPTICS 的 完整 和精确的 Python 实现。此处发布的链接似乎只是 OPTICS 想法的粗略近似。它们也不使用索引进行加速,因此它们将运行在 O(n^2) 甚至更可能是 O(n^3)

除了显而易见的想法之外,OPTICS 还有许多棘手的事情。特别是,建议使用 relative 阈值(“xi”)而不是此处发布的绝对阈值来完成阈值处理(此时结果将近似于 DBSCAN!)。

原始 OPTICS 论文包含将算法输出转换为实际集群的建议方法:

http://www.dbs.informatik.uni-muenchen.de/Publikationen/Papers/OPTICS.pdf

Weka 中的 OPTICS 实现基本上是未维护并且同样不完整。它实际上并不产生集群,它只计算集群顺序。为此,它复制了数据库 - 它不是真正的 Weka 代码。

ELKI 中似乎有一个相当广泛的实现。由最初发布 OPTICS 的小组在 Java 中使用。您可能想针对这个“官方”版本测试任何其他实现。

关于OPTICS(聚类)算法的 Python 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5515675/

相关文章:

algorithm - 基于点的局部线性分割一组点的分割算法

tensorflow - 在 GPU 支持下对高维数据进行更快的 Kmeans 聚类

python - 模拟 Django 模型和 save()

python - CUPTI 事件缓冲区已刷新,GpuTracer 已收集 577 个回调 api 事件和 577 个事件事件,我应该担心吗?

python - 如何在 Pandas 中获取 "reversed"时间窗口?

machine-learning - 神经网络模型中隐藏层的数量

arrays - 这是 DBSCAN 算法的预期行为吗(两个相同的数据样本不适契约(Contract)一簇)?

python - 将curl转换为python : usernames and passwords

machine-learning - WEKA输出额外信息

image-processing - 结合多特征提取器