用于自定义Weka分类器的GUI中的选项

时间:2015-03-10 17:32:49

标签: java machine-learning classification weka

我为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)

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

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。 我偶然意识到:)如果我使用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)方法相同。

您只需要使用访问者。