Weka 3-8-1 中的 DBSCAN 聚类
DBSCAN Clustering in Weka 3-8-1
从 GUI 在 Weka 中安装 OPTICS_DBSCAN 包后,使用 Weka 包管理器,我能够 运行 使用 GUI 的算法。但是当使用命令行界面时,它会抛出一个错误,说明如下。
Error: Could not find or load main class weka.clusterers.DBSCAN
我已经从 GUI 本身复制了命令,但不明白会出现什么错误。以下是命令。
java weka.clusterers.DBSCAN -E 0.9 -M 6 -A "weka.core.EuclideanDistance -R first-last" -t "ARFF_Files/Jain.arff"
知道问题出在哪里吗?
PS: DBSCAN 和 DBScan 这个名字我都试过了,因为我在网上看到了两个变体。
DBSCAN 的正确拼写是全部大写,但 Weka class 长期以来的命名方式不同。
您需要将 .jar
添加到您的 class 路径。 Weka 已经引入了这个扩展系统,但是命令行会不会 自动加载你在 GUI 中安装的扩展。您需要自己设置 Java class 路径。
请使用 ELKI 而不是 Weka。您会注意到它快 lot,尤其是当您启用数据索引时。此外,ELKI 有更多的聚类算法和完整的 OPTICS。如果我没记错的话,Weka 的 OPTICS 没有 Xi 提取。在我们的实验中,Weka 是基准测试中最慢的实现之一(唯一较慢的实现是 R 的 fpc
包):
Kriegel, H. P., Schubert, E., & Zimek, A. (2017).
The (black) art of runtime evaluation: Are we comparing algorithms or implementations?
Knowledge and Information Systems, 52(2), 341-378.
最快的工具会将 1.5(低级优化 C++)中的数据聚类到 7 秒(Java),并带有索引。 Weka 花费了 1100 多秒。在这个数据集上慢了 100 多倍。
从 GUI 在 Weka 中安装 OPTICS_DBSCAN 包后,使用 Weka 包管理器,我能够 运行 使用 GUI 的算法。但是当使用命令行界面时,它会抛出一个错误,说明如下。
Error: Could not find or load main class weka.clusterers.DBSCAN
我已经从 GUI 本身复制了命令,但不明白会出现什么错误。以下是命令。
java weka.clusterers.DBSCAN -E 0.9 -M 6 -A "weka.core.EuclideanDistance -R first-last" -t "ARFF_Files/Jain.arff"
知道问题出在哪里吗?
PS: DBSCAN 和 DBScan 这个名字我都试过了,因为我在网上看到了两个变体。
DBSCAN 的正确拼写是全部大写,但 Weka class 长期以来的命名方式不同。
您需要将 .jar
添加到您的 class 路径。 Weka 已经引入了这个扩展系统,但是命令行会不会 自动加载你在 GUI 中安装的扩展。您需要自己设置 Java class 路径。
请使用 ELKI 而不是 Weka。您会注意到它快 lot,尤其是当您启用数据索引时。此外,ELKI 有更多的聚类算法和完整的 OPTICS。如果我没记错的话,Weka 的 OPTICS 没有 Xi 提取。在我们的实验中,Weka 是基准测试中最慢的实现之一(唯一较慢的实现是 R 的 fpc
包):
Kriegel, H. P., Schubert, E., & Zimek, A. (2017).
The (black) art of runtime evaluation: Are we comparing algorithms or implementations?
Knowledge and Information Systems, 52(2), 341-378.
最快的工具会将 1.5(低级优化 C++)中的数据聚类到 7 秒(Java),并带有索引。 Weka 花费了 1100 多秒。在这个数据集上慢了 100 多倍。