0

虽然 ubuntu 上的终端:

db@morris:~/lisbet/elki-master/elki/target$ elki-cli -algorithm outlier.lof.LOF -dbc.parser ArffParser -dbc.in /home/db/lisbet/AllData/literature/WBC/WBC_withoutdupl_norm_v10_no_ids.arff -lof.k 8 -evaluator outlier.OutlierROCCurve -rocauc.positive yes

给予 # ROCAUC: 0.6230046948356808

在 ELKI 的 GUI 中:

Running: -verbose -dbc.in /home/db/lisbet/AllData/literature/WBC/WBC_withoutdupl_norm_v10_no_ids.arff -dbc.parser ArffParser -algorithm outlier.lof.LOF -lof.k 8 -evaluator outlier.OutlierROCCurve -rocauc.positive yes
de.lmu.ifi.dbs.elki.datasource.FileBasedDatabaseConnection.parse: 18 ms
de.lmu.ifi.dbs.elki.datasource.FileBasedDatabaseConnection.filter: 0 ms
LOF #1/3: Materializing LOF neighborhoods.
de.lmu.ifi.dbs.elki.index.preprocessed.knn.MaterializeKNNPreprocessor.k: 9
Materializing k nearest neighbors (k=9): 223 [100%]
de.lmu.ifi.dbs.elki.index.preprocessed.knn.MaterializeKNNPreprocessor.precomputation-time: 10 ms
LOF #2/3: Computing LRDs.
LOF #3/3: Computing LOFs.
LOF: complete.
de.lmu.ifi.dbs.elki.algorithm.outlier.lof.LOF.runtime: 39 ms
ROCAUC: **0.6220657276995305**

我不明白为什么 2 ROCAUCcurves 不一样。

我测试这个的目标是对我的结果感到满意,我所做的事情是正确的,但是当我没有得到匹配的结果时很难。当我看到我的设置正确时,我将继续进行自己的实验,这是我可以信任的。

4

1 回答 1

2

作为第一个命令行参数传递以启动cliCLI,或minigui启动 MiniGUI。以下是等价的:

java -jar elki/target/elki-0.6.5-SNAPSHOT.jar cli
java -jar elki/target/elki-0.6.5-SNAPSHOT.jar KDDCLIApplication
java -jar elki/target/elki-0.6.5-SNAPSHOT.jar de.lmu.ifi.dbs.elki.application.KDDCLIApplication

这适用于任何扩展类的类AbstractApplication

你也可以这样做:

java -cp elki/target/elki-0.6.5-SNAPSHOT.jar de.lmu.ifi.dbs.elki.application.KDDCLIApplication

(这将减少 1 个类,但这通常不值得付出努力。)

这适用于任何具有标准public void main(String[])方法的类,因为这是标准的 Java 调用。

但请注意,-h当前仍将打印0.6.0 (2014, January),该值未针对 0.6.5 临时版本更新。它会被撞到0.7.0。因此,该版本号不可靠。

至于您观察到的差异:尝试 varing kby 1。如果我没记错的话,我们将 k 参数的含义更改为在不同算法之间更加一致。(无论如何,它们在文学作品中并不一致。)

于 2015-07-23T15:48:34.743 回答