问题标签 [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 投票
2 回答
3282 浏览

cluster-analysis - ELKI implementation of OPTICS clustering algorithm detects only one cluster

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

0 投票
2 回答
1333 浏览

java - ELKI 和 RapidMiner 中 LOF 实施的不同结果

我已经编写了自己的 LOF 实现,我正在尝试将结果与 ELKI 和 RapidMiner 中的实现进行比较,但所有 3 都给出了不同的结果!我正在努力找出原因。

我的参考数据集是一维的,有 102 个实数值,有很多重复。我会试着把它贴在下面。

首先,RapidMiner 的实现。LOF 分数与 ELKI 和我的结果大不相同;许多人带着无限的LOF回来。这个实现是否被验证为正确的?

我的结果与 ELKI 相似,但我没有得到完全相同的 LOF 值。通过快速浏览 ELKI 源代码中的注释,我认为这可能是因为计算 k 邻域的方式不同。

在 LOF 论文中,MinPts 参数(在其他地方称为 k)指定了最小编号。包含在 k 邻域中的点数。在 ELKI 实现中,我认为他们将 k 邻域定义为精确的 k 点,而不是 k 距离或 k 不同距离内的所有点。谁能确切地确认 ELKI 是如何构建 k 邻域的?还有一个私有变量允许点本身包含在它自己的邻居中,但看起来默认不包含它。

有谁知道带有用于验证目的的 LOF 分数的公共参考数据集?

---更多细节如下---

参考:ELKI源代码在这里:

http://elki.dbs.ifi.lmu.de/browser/elki/trunk/src/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOF.java

RapidMiner 源代码在这里:

http://code.google.com/p/rapidminer-anomalydetection/source/browse/trunk/src/de/dfki/madm/anomalydetection/evaluator/nearest_neighbor_based/LOFEvaluator.java

这是我的测试数据集:

4.32323 5.12595 5.12595 5.12595 5.12595 5.7457 5.7457 5.7457 5.7457 5.7457 5.7457 5.97766 5.97766 6.07352 6.07352 6.12015 6.12015 6.12015 6.44797 6.44797 6.48131 6.48131 6.48131 6.48131 6.48131 6.48131 6.6333 6.6333 6.6333 6.70872 6.70872 6.70872 6.70872 6.70872 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 6.77579 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.03654 7.10361 7.10361 7.10361 7.10361 7.10361 7.10361 7.10361 7.10361 7.15651 7.15651 7.15651 7.15651 7.15651 7.15651 7.15651 7.15651 8.22598 8.22598 8.22598 8.22598 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538 8.5538

例如,我得到第一个数字 (4.32323) 的以下 LOF 分数:

  • RapidMiner:无穷大(MinPts 下限/上限设置为 10,100)
  • ELKI:2.6774(k = 10 并且 distfunction/reachdistfunction 设置为默认值)
  • 我的实现:1.9531

关于我的实现正在做什么的更多细节:

  1. MinPts 是 10,所以我找到了该点的 10 个不同的邻居。所以 4.32323 的邻域实际上是 48 个点,从 5.12595 到 6.77579。
  2. 这给了我 2.45256 的 k-distinct 距离
  3. 我正在计算第一个邻居的可达距离为 1.58277
  4. 我将样本的 LRD 计算为 1/(99.9103/48)
  5. 所有 48 个邻居的 lrd(o)/lrd(p) 之和为 93.748939
  6. 除以 48 得到 1.9531 的 LOF
0 投票
2 回答
6074 浏览

java - 在 ELKI 中运行聚类算法

我需要以编程方式使用 ELKI 来运行 k-medoids 聚类算法。我有一个相似度矩阵,希望输入到算法中。

是否有任何代码片段可用于如何运行 ELKI 算法?我基本上需要知道如何创建对象DatabaseRelation创建自定义距离函数以及读取算法输出。

不幸的是,ELKI 教程 ( http://elki.dbs.ifi.lmu.de/wiki/Tutorial ) 侧重于 GUI 版本和实现新算法,并且尝试通过查看 Javadoc 来编写代码令人沮丧。

如果有人知道任何易于使用的 k-medoids 库,那么这也可能是这个问题的一个很好的答案。

0 投票
1 回答
317 浏览

algorithm - ELKI COPAC 实施

我尝试在官方网站 (mouse.csv) 上提供的示例数据集上运行 COPAC ELKI 实现,但我得到一个 NullPointerException,这让我认为我忽略了一些细节(我感到羞耻)。

例外情况如下:

de.lmu.ifi.dbs.elki.database.ids.integer.DoubleDistanceIntegerDBIDPair.compareByDistance(Unknown Source) at de.lmu.ifi.dbs.elki.distance.distanceresultlist.AbstractKNNHeap$Comp 的任务失败 java.lang.NullPointerException。在 de.lmu.ifi.dbs.elki.utilities.datastructures.heap.TopBoundedHeap.add(未知来源)在 de.lmu.ifi.dbs.elki.database.query.knn.LinearScanRawDoubleDistanceKNNQuery.getKNNForObjectBenchmarked(未知来源)在 de.lmu.ifi.dbs.elki.database.query.knn.LinearScanRawDoubleDistanceKNNQuery.getKNNForObject(未知来源) ) 在 de.lmu.ifi.dbs.elki.index.preprocessed 的 de.lmu.ifi.dbs.elki.database.query.knn.LinearScanRawDoubleDistanceKNNQuery.getKNNForDBID(Unknown Source)。localpca.KNNQueryFilteredPCAIndex.objectsForPCA(Unknown Source) at de.lmu.ifi.dbs.elki.index.preprocessed.localpca.KNNQueryFilteredPCAIndex.objectsForPCA(Unknown Source) at de.lmu.ifi.dbs.elki.index.preprocessed.localpca。 AbstractFilteredPCAIndex.preprocess(Unknown Source) at de.lmu.ifi.dbs.elki.index.preprocessed.localpca.AbstractFilteredPCAIndex.getLocalProjection(Unknown Source) at de.lmu.ifi.dbs.elki.index.preprocessed.localpca.AbstractFilteredPCAIndex。 getLocalProjection(Unknown Source) at de.lmu.ifi.dbs.elki.algorithm.clustering.correlation.COPAC.run(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm.run(Unknown Source) 在 de.lmu.ifi.dbs.elki 的 java.lang.reflect.Method.invoke(Method.java:616)。 workflow.AlgorithmStep.runAlgorithms(Unknown Source) at [...]

这是我使用的参数设置:

-dbc.in [路径省略]/mouse.csv

-算法clustering.correlation.COPAC

-copac.preprocessor localpca.KNNQueryFilteredPCAIndex

-copac.partitionAlgorithm gdbscan.GeneralizedDBSCAN

-dbscan.epsilon 0.00400000

-dbscan.minpts 3

谁能给我一些信息?

0 投票
1 回答
970 浏览

string - Clustering string data with ELKI

I need to cluster a large number of strings using ELKI based on the Edit Distance / Levenshtein Distance. Since the data set is too large, I'd like to avoid file based precomputed distance matrices. How can I

(a) load string data in ELKI from a file (only "Labels")?

(b) implement a distance function accessing the labels (extend AbstractDBIDDistanceFunction, but how to get the labels?)

Some code snippets or example input files would be helpful.

0 投票
1 回答
1253 浏览

cluster-analysis - 在 ELKI 上运行 OPTICS 算法

我通常是 R 用户(刚开始 R 用户,但我开始掌握它的窍门)。然而,我听到了关于 ELKI 的积极消息——尤其是它的速度。我遇到了这篇旧帖子“如何对存储在 SQL 中的附近纬度和经度位置进行分组”,而 Anony-Mousse 发布的答案与我想做的类似。我希望能够将他所做的每一步复制到他在 Google Drive 上共享的 KML 文件中。

我已经下载了 ELKI 并且能够运行 mini-GUI,如下所示:

在此处输入图像描述

有人可以发布一些关于如何做 Anony-Mousse 能够做到的步骤吗?

我的数据本质上非常相似。我在 csv 文件中有地理编码地址(更具体地说,每个元组都是一个事件,变量/特征/列之一是事件的地理编码地址),我希望在上面的链接中找到类似于 OP 的集群.

希望 Anony-Mousse 会阅读这篇文章并进行救援。但是,如果其他人可以帮助我上路,我将不胜感激。

0 投票
1 回答
625 浏览

cluster-analysis - 将簇的 ELKI DBSCAN 凸包写入文件

我已经开始使用 ELKI 进行数据分析,但我似乎无法做的一件看似简单的事情是在运行 DBSCAN 后将计算出的集群凸包输出到文件中。我可以通过可视化 gui 可视化凸包,但无法生成 KML 文件。我还可以将我的聚类结果写入一个文件夹(使用 ResultWriter resulthandler),但是当我设置 KMLOutputHandler 时没有生成文件。我在日志窗口中没有收到错误消息(即使详细参数设置为 true)。

在 ELKI 中生成 KML 文件有技巧吗?任何人都可以完成这样做的步骤吗?

任何帮助,将不胜感激。

(顺便说一句,是否可以使用 ELKI 为 DBSCAN 结果生成 alpha 形状?如果可以,必须调整哪个参数?)

0 投票
1 回答
689 浏览

data-mining - 如何使用带有 LatLngDistanceFunction 的 ELKI 聚类

聚类的默认设置似乎工作正常 - 特别是 EuclideanDistanceFunction。但是,我想使用 lng/lat 形式的空间数据运行聚类,当我更改距离函数时,elki 崩溃了:

它不清楚(对我来说)这个错误意味着什么。聚类功能是否可能不适用于地理空间数据?

有一个简单的解决方法吗?实现所需的功能(心态)会不会很困难?

0 投票
1 回答
637 浏览

outliers - ELKI - 输入距离矩阵

我正在尝试使用 ELKI 进行异常值检测;我有我的自定义距离矩阵,我正在尝试将其输入到 ELKI 以执行 LOF(例如,第一次)。

我尝试关注http://elki.dbs.ifi.lmu.de/wiki/HowTo/PrecomputedDistances但对我来说不是很清楚。我做什么:

  • 我不想从数据库加载数据,所以我使用:

    (其中 100 是我要分析的对象数量)

  • 我使用 LOF 算法并调用外部距离文件

    /li>

我的距离文件如下(为了测试目的很简单)

ETC

结果说:“所有在一个微不足道的聚类中”,虽然这不是聚类,而且我的数据中肯定存在异常值。

我做的对吗?或者我错过了什么?

0 投票
1 回答
465 浏览

cluster-analysis - 在自定义对象上使用 ELKI 并理解结果

我正在尝试在我的程序中使用ELKI 的层次聚类的 SLINK 实现

我有一组需要集群的对象(我自己的类型)。为此,我在聚类之前将它们转换为特征向量。

这就是我目前如何让它运行并产生一些结果(代码在 Scala 中):

现在,结果是 aClustering包含 type 的元素Model。我可以输出它们,但我不知道如何理解这个结果,特别是因为SLINK返回的模型类型DendrogramModel似乎不可参数化。

具体来说,如何将结果链接回我的原始元素(我featureVectors之前创建变量的元素)?

我假设我需要创建某种自定义模型,或者通过初始化和执行算法以某种方式维护与原始元素的链接以从结果中检索。不过,我找不到从哪里开始。

我知道不鼓励将 ELKI 嵌入到自己的程序中。但是,似乎以其他方式调用 ELKI 并没有什么不同:我需要在程序运行期间对结果进行聚类并将结果映射回我的对象​​。