问题标签 [elki]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
464 浏览

cluster-analysis - 传递 Java 数组作为 ELKI DBSCAN 的输入

我已经能够使用 Java 代码将 ELKI 用于 DBSCAN,并且与任何其他工具相比,它的速度非常快。到目前为止,我正在使用 CSV 文件并使用以下内容作为输入。

我想知道如何将 (lat,long,timestamp) 数组作为输入而不是 CSV 文件传递​​。我无法弄清楚。

0 投票
1 回答
734 浏览

cluster-analysis - ELKI - k 均值聚类。

我喜欢在命令行中运行 ELKI k-means 聚类。

与R编程相比,运行时间似乎太短了。我尝试在 R 中运行 k-means 聚类,然后花了大约 100 秒。此外,在 k=5、k=10 等之间没有变化。

file.tsv有 60,000 行和 25 列。

输出是"It took 5 seconds"

这种情况k=10也是"It took 5 seconds"

为什么集群大小没有变化?代码有问题吗?

0 投票
1 回答
427 浏览

java - 无法从 w3c 加载 java 类

我正在尝试使用 ELKI ( http://elki.dbs.ifi.lmu.de/ ) 进行 OPTICS-clustering。

我尝试使用提供的 gui 运行集群,但随后出现此异常:

我将 w3c.jar 解压缩到/usr/share/java程序的路径中。但它仍然给我同样的错误。

我有一个相当旧的 Ubuntu (10.04),带有 OpenJDK 版本 IcedTea6 1.13.3。但我想这不是造成麻烦,对吧?

该怎么办?

0 投票
1 回答
691 浏览

java - ELKI Maven 光学

我正在尝试使用 ELKI ( http://elki.dbs.ifi.lmu.de/#GettingELKI:DownloadandCitationPolicy ) 但找不到 maven 依赖项。有谁知道我在哪里可以找到它?

我想用 OPTICSXi 实现做一些实验,但我发现它非常困难。有人可以给我一些建议吗?链接?有什么可以让我开始的吗?这是一个很好的 OPTICS 实现吗?

我找到了这些链接: 在 ELKI 上运行 OPTICS 算法 如何使用 Weka 的 DBSCAN 对实例进行集群? 但他们并没有真正帮助我..

0 投票
1 回答
81 浏览

cluster-analysis - ELKI 在对计数度量中显示负值

当我在 ELKI wit Kmeans Algorithm k =32 和 max iter=100 中运行从 .wav 文件生成的一些倒谱系数数据时,它会为以下对计数措施提供负值。Jaccard=-3.3627 Recall=-3.3627 Rand=-3.3627 和 F1 Measure=2.8465 我在某处搜索了这些度量的范围,它们是 (0,1)。我用其他几种算法运行了这个数据并且遇到了同样的问题。谁能解释一下?

0 投票
1 回答
1223 浏览

cluster-analysis - 解释 OPTICSxi 聚类的结果

我对检测不同密度区域中的集群感兴趣,例如城市中用户生成的数据,为此我采用了OPTICS算法。

DBSCAN不同,OPTICS 算法不会产生严格的集群分区,而是对数据库进行增强排序。为了生成集群分区,我使用 OPTICSxi,它是另一种基于 OPTICS 输出生成分类的算法。很少有库能够从 OPTICS 的输出中提取集群分区,ELKI的 OPTICSxi 实现就是其中之一。

我很清楚,如何解释 DBSCAN 的结果(虽然设置“有意义”的全局参数并不容易);DBSCAN 检测集群的“原型”,以密度为特征,表示为每个区域的点数(minpts/epsilon)。OPTICSxi 的结果似乎有点难以解释。

我有时会在 OPTICSxi 的输出中检测到两种现象,但我无法解释。一个是“尖峰”集群的出现,它连接了地图的各个部分。我无法解释它们,因为它们似乎由很少的点组成,而且我不明白算法如何决定将它们分组到同一个集群中。它们真的代表了密度变化的“走廊”吗?查看基础数据,它看起来不像那样。您可以在下图中看到这些“尖峰”。

ε=1000; xi=0.05; minpts=100;

我无法解释的另一个现象是,有时会出现同一层级的“重叠”集群。OPTICSxi 基于数据库的 OPTICS 排序(例如树状图),该图中没有重复点。

由于这是一个层次聚类,我们认为较低级别的聚类包含较高级别的聚类,并且在构建凸包时强制执行该想法。但是,我认为没有任何理由让集群与同一层次上的其他集群相交,这实际上意味着某些点将具有双重集群“成员资格”。在下图中,我们可以看到一些具有相同层次级别 (0) 的相交集群。

最后,我想留给您的最重要的想法/问题是:我们期望在 OPTICSxi 聚类分类中看到什么?这个问题与参数化 OPTICSxi 的任务密切相关。

由于我几乎没有看到任何针对特定集群问题运行 OPTICSxi 的研究,因此我很难找到最佳的集群分类。即:可以提供一些有意义/有用的结果,并为 DBSCAN 聚类增加一些价值。为了帮助我回答这个问题,我使用不同的参数组合运行了多次 OPTICSxi,我选择了三个,我将在下面讨论。

ε=2000; xi=0.025; minpts=100;

在这次运行中,我使用了较大的 epsilon (2Km) 值;该值的含义是我们接受大型集群(最大 2Km);由于算法“合并”了集群,我们最终会得到一些非常大的集群,几乎可以肯定它们的密度很低。我喜欢这个输出,因为它暴露了分类的层次结构,它实际上让我想起了使用不同的参数组合(针对不同的密度)运行 DBSCAN,这就是 OPTICS 所宣传的“强度”。如前所述,较小的集群对应于层次尺度中的更高级别和更高的密度。

ε=250; xi=0.035; minpts=10

在这次运行中,我们看到了大量的集群,即使“对比度”参数与上一次运行相同。这主要是因为我选择了较少的 minpts,这表明我们接受了点数较少的集群。由于本例中的 epsilon 较短,因此我们看不到这些大集群占据了地图的很大一部分。我发现这个输出没有前一个有趣,主要是因为,即使我们有一个层次结构,在同一级别也有许多集群,并且其中许多相交。在解释上,我可以看到一个与前一个相似的整体“形状”,但实际上它被离散化为许多容易被忽略为“噪声”的小簇。

ε=250; xi=0.035; minpts=100

本次运行有一个参数选择,与上一次类似,只是minpts更大;结果是,我们不仅发现更少的集群并且它们重叠更少,而且它们大多处于同一水平。

从增加 DBSCAN 价值的角度来看,我会选择第一个参数组合,因为它提供了数据的层次结构图,清楚地显示了哪些区域更密集。恕我直言,最后的参数组合无法提供密度的全球分布的概念,因为它在整个研究区域都发现了类似的集群。我有兴趣阅读其他意见。

0 投票
1 回答
116 浏览

cluster-analysis - 如何在 ELKI 中选择 EM 聚类中的 delta 值

我们应该在EM聚类中选择delta的值是多少?

它为不同的 delta 值给出了不同的度量值。

0 投票
1 回答
183 浏览

java - 如何使用 ELKI 插入自定义距离?

我已经阅读了 ELKI 文档中的教程(http://elki.dbs.ifi.lmu.de/wiki/Tutorial/DistanceFunctions)。

不幸的是,我没有掌握如何使用 MiniGUI(或提供的 .jar 的 bash 脚本)插入生成的 .class。怎么做?

Ps:我知道这听起来绝对是菜鸟,但是当我按照建议尝试“键入”类名时,我收到错误“无法处理以下参数:HammingDistance”。

0 投票
1 回答
1006 浏览

performance - 带有 R*-Tree 的 ELKI DBSCAN

我正在尝试使用 ELKI 库实现 DBSCAN 集群测试应用程序。我的数据集是 6 维的,由大约 100.000 个对象组成。

我曾尝试在我的代码中使用 R*-Tree ELKI 优化,但对代码进行基准测试似乎仍然使用 O(n^2)。

这是我在应用程序中使用的代码:

运行上面的代码会导致以下结果:

使用简单的 System.currentTimeMillis() 围绕 dbscan.run(db) 对时间进行基准测试。查看时间列,您可以看到趋势类似于 n^2 而不是 nlog(n),但我无法理解将 ELKI DBSCAN 与 R*-Tree 优化一起使用时缺少什么。

感谢您的任何帮助或建议。

0 投票
1 回答
185 浏览

cluster-analysis - ELKI:实现自定义 ResultHandler

我需要实现一个自定义ResultHandler,但我对如何将我的自定义类实际集成到软件包中感到困惑。

我读过这个:http ://elki.dbs.ifi.lmu.de/wiki/HowTo/InvokingELKIFromJava但我的问题是你打算如何实现一个自定义结果处理程序,以便它显示在 GUI 中?

我能想到的唯一方法是提取 elki.jar 包并将我的自定义类手动插入到源代码中,然后重新压缩包。但是,我相当确定这不是它应该做的方式。

此外,在我的结果处理程序中,我需要将所有行输出到单个文本文件中,并显示每行所属的集群。如何提示我如何实现这一目标?