虽然是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 ROCAUC曲线不一样。
我测试这个的目标是对我的结果感到满意,我所做的是对的,但是当我得不到匹配的结果时很难。当我看到我的设置正确时,我将继续进行自己的实验,我可以信任。
答案 0 :(得分:2)
传递cli
作为第一个命令行参数来启动CLI,或者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
撞到。因此,该版本号不可靠。
至于你观察到的差异:尝试将k
变为1.如果我没记错,我们改变了k参数的含义,使其在不同的算法中更加一致。 (无论如何,它们在文献中并不一致。)