【问题标题】:Options in GUI for custom Weka classifier自定义 Weka 分类器的 GUI 选项
【发布时间】:2015-05-12 06:47:09
【问题描述】:

我已经为 Weka 实现了我自己的自定义分类器,它继承自 Classifier 并实现了 Serializable 和 OptionHandler。

目前我已经能够从 Weka UI 完美地运行分类器,但没有参数。我知道我需要实现以下方法才能看到 UI 中的选项:

public void setOptions(String [] options) throws Exception
public String [] getOptions()
public Enumeration listOptions()

我已经使用一些虚拟代码实现了 getOptions,并且它被 UI 完美调用(我使用 System.out.println 来记录这个)。而且我还为 listOptions 实现了一个虚拟代码,但它从未被调用过。

当我尝试通过 UI 为我的算法选择选项时,我只看到“调试”选项。您有什么想法可以解决这个问题并通过 UI 查看我的选项吗?

基本上我想做的是从 Weka 运行我的算法,但使用自定义选项/参数。

我已经阅读过这个文档,但我认为它不是很有用:

http://weka.wikispaces.com/Writing+your+own+Classifier+(post+3.5.2)

你有什么想法或例子来解决这个问题吗?

【问题讨论】:

  • 对于 Weka 的问题,最好在 Weka 列表中提问,通常会得到 Weka 主要作者的快速回复。

标签: java machine-learning classification weka


【解决方案1】:

我遇到了同样的问题。 我偶然意识到 :) 如果我使用 get 和 set 方法而不是仅仅访问它的属性!

更清楚的是,对于一个名为“threshold”的属性,用“T”作为选项表示:

此代码不起作用:

public String[] getOptions() {

    String[] options = new String[3];
    int current = 0;
    options[current++] = "-T";
    options[current++] = "" + threshold;

    while (current < options.length) {
        options[current++] = "";
    }
    return options;
}

这段代码有效:

public String[] getOptions() {

    String[] options = new String[3];
    int current = 0;
    options[current++] = "-T";
    options[current++] = "" + getThreshold();

    while (current < options.length) {
        options[current++] = "";
    }
    return options;
}

setOptions(String[] options) 方法也一样。

您只需要使用访问器。

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 2021-06-27
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 2016-02-19
    • 2014-05-07
    相关资源
    最近更新 更多