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

标签 cluster-analysis data-mining elki

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

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

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

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

最佳答案

这里有两个问题。

  1. 为了通过 UI(MiniGUI 和命令行)使您的类可实例化,这些类必须实现我们的 Parameterization应用程序接口(interface)。使您的类可实例化基本上有两种选择:

    • 添加一个 public 构造函数没有参数(UI 将不知道如何设置您的参数!)
    • 添加一个处理参数化的内部静态类Parameterizer
  2. 为了将您的类添加到自动完成(下拉菜单),这些类必须被 MiniGUI/CLI/其他 UI 发现。 ELKI 使用两种发现方法:

    • 对于.jar 文件,它读取META-INF/elki/interfacename 服务文件。这是一种经典的服务加载器方法;除了我们还允许订购实例。
    • 仅针对目录,ELKI 还将扫描所有.class 文件,并检查它们。这主要用于开发时间,以避免必须一直更新服务文件。出于性能原因,我们不检查 .jar 文件的内容;这些预计将使用服务文件。

您不需要在下拉菜单中显示您的类(class) - 您可以随时键入完整的类(class)名称。如果这不起作用,将名称添加到服务文件也无济于事,但 ELKI 要么根本找不到该类,要么无法实例化它。

还有一个tutorial on implementing a custom result handler , 但它没有讨论如何将它添加到菜单中。在“开发模式”下 - 当有一个包含 .class 文件的文件夹时 - 它会自动显示。

关于cluster-analysis - ELKI:实现自定义 ResultHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25346743/

相关文章:

java - DBSCAN 及其索引是否应该具有相同的距离函数

indexing - 将 PH-Tree 添加到 ELKI

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

python - 使用sklearn TSNE映射测试数据

nlp - tf-idf(三角不等式)的余弦相似度替代方案

machine-learning - 为什么IS曲线以(0,0)开始?

machine-learning - 此场景的文本分类技术

python - 比较大量图的同构性

python - Pandas 数据框每两行的组合

python - 从时间序列数据中进行基于相位的事件检测