2012-06-30 218 views
0

我为WEKA编写了一个自定义分类器,除了一个实例的预测类外,它还需要提供信息。具体来说,它是一个列表,描述了每个训练实例子集对预测类的影响有多大。WEKA输出额外信息

additionalMeasureProducer接口不起作用,因为我需要打印一个字符串到GUI。我希望用户能够选择输出这些信息。我曾希望“分类器评估选项”对话框中的“输出模型”选项可以解决问题,但WEKA最终会在分类发生之前调用分类器的toString()方法。我认为这是一个错误,因为我的分类器位于weka.classifiers.lazy包中,这意味着它不会构建,直到将要分类的实例发送给它。

有没有人有任何想法如何将更多的GUI输出功能添加到自定义WEKA分类器?

+0

这似乎是一个相当专业的Weka问题。您可能还想在Weka邮件列表上提问:http://list.scms.waikato.ac.nz/mailman/listinfo/wekalist – Sicco

回答

2

那么,我可以找到合适的方法来实现一个特殊的weka.classifiers.evaluation.output.prediction.AbstractOutput,它只能用于我的分类器。我globalInfo()指定它,getDisplay(),我doPrintClassification方法开始是这样的:

@Override 
protected void doPrintClassification(Classifier classifier, Instance inst, 
     int index) throws Exception { 
    if (!(classifier instanceof MyClassifier)) 
     throw new IllegalArgumentException(
       "This output can only be used with the MyClassifier classifier"); 

    MyClassifier mc = (MyClassifier) classifier; 

这样我就能够调用适当的方法来获得我的分类信息。为CSV,HTML和纯文本编写所有内容太多,所以我只需将其留给用户选择即可从我的自定义输出类获取特殊信息,并在需要特定格式时从其他输出类获取常规信息。