Machine learning WEKA输出额外信息
我为WEKA编写了一个自定义分类器,它需要提供除实例的预测类之外的信息。具体地说,它是一个列表,描述了训练实例的每个子集对预测类的影响有多大Machine learning WEKA输出额外信息,machine-learning,weka,Machine Learning,Weka,我为WEKA编写了一个自定义分类器,它需要提供除实例的预测类之外的信息。具体地说,它是一个列表,描述了训练实例的每个子集对预测类的影响有多大 additionalMeasureProducer界面将无法工作,因为我需要向GUI打印字符串。我希望用户能够选择输出此信息。我曾希望“分类器评估选项”对话框中的选项“输出模型”能起到作用,但WEKA最终在分类之前调用了我的分类器的toString()方法。我认为这是一个bug,因为我的分类器是在 WEKA.Qualisher中。懒惰包,意思是它是不被构建
additionalMeasureProducer
界面将无法工作,因为我需要向GUI打印字符串。我希望用户能够选择输出此信息。我曾希望“分类器评估选项”对话框中的选项“输出模型”能起到作用,但WEKA最终在分类之前调用了我的分类器的toString()
方法。我认为这是一个bug,因为我的分类器是在<代码> WEKA.Qualisher中。懒惰包,意思是它是不被构建的,直到被分类的实例被赋予它。p>
有人知道如何为自定义WEKA分类器添加更多GUI输出功能吗?好吧,我能找到的唯一正确方法是实现一个特殊的
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和纯文本编写这些内容太多了,所以我只能让用户选择从我的自定义输出类获取特殊信息,并从其他输出类获取常规信息(如果他们需要特定格式)。这似乎是一个非常专业的Weka问题。您可能还想在Weka邮件列表中询问: