当前位置: 首页 > 知识库问答 >
问题:

WEKA输出额外信息

仲涵亮
2023-03-14

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

additionalMeasureProducer界面将无法工作,因为我需要将字符串打印到GUI。我希望用户能够选择输出此信息。我原本希望“分类器评估选项”对话框中的选项“输出模型”可以起到作用,但WEKA最终在分类之前调用了我的分类器的toString()方法。我认为这是一个bug,因为我的分类器在weka中。分类器。lazy包,这意味着在将要分类的实例提供给它之前,它不会被构建。

有人知道如何向自定义WEKA分类器添加更多GUI输出功能吗?

共有1个答案

左丘元徽
2023-03-14

我能找到的唯一正确的方法就是实现一个特殊的weka。分类器。评价输出预言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和纯文本编写这一切太多了,所以我只能让用户选择从我的自定义输出类中获取特殊信息,如果需要特定格式,还可以从其他输出类中获取常规信息。

 类似资料:
  • 例如,当我为num1输入2,为num2输入3时,我希望在输入第二个数字后立即获得8的输出。但是,程序希望我再输入一个整数,而我只输入一个随机数,如242,它仍然输出8,这意味着它不会影响结果。所以我的问题是为什么有第三个输入?感谢您的帮助!

  • 在weka中。分类器。Evaluation有一个方法,它输出如下所示的混淆矩阵。 我注意到,这个输出中的类是从作为

  • 我正在使用WEKA Explorer运行10倍交叉验证。我将预测输出到CSV文件。由于10倍的方法混合了数据的顺序,我不知道哪些特定数据分类正确或错误。我的意思是,通过查看CSV,我不知道哪个特定的1或0被分类为1或0。是否有任何方法可以查看测试集中每个折叠的每个特定实例的分类结果?例如,如果CSV能够记录被分类实例的ID,那就太好了。 另一种选择是,我可以手动实现10倍的方法;i、 例如,我可以

  • 我在过去(90年代中期)使用过ANTLR,并决定重新使用它,因为我想为赋值文件中的注释以及Unicode关键字和值提供支持。 我的简单测试文件再次证明,即使使用好的工具,编写正确的语法也是一个困难的问题。我正在使用VS2012的ANTLR语言支持插件,并用C#进行开发。所以,我对Eclipse/Java保留很满意,但是C#插件和ANTLR Nuget包(运行时和代码生成器)完全按照广告所说的那样工

  • 我只是在应用程序的pom.xml中添加了一个spring-boot-starter-actuctor依赖项。生成并运行项目后,/healthendpoint显示下一个信息: 如何从响应中删除“详细信息”部分?

  • 问题内容: 输入文件: python代码: 问题: 如您所见,输出在每个项目之间都有多余的行。 如何预防呢? 问题答案: 追加一个换行符,并且输入行已经以换行符结尾。 一个标准的解决方案是逐字输出输入行: PS :对于Python 3(或具有打印功能的Python 2),abaront的解决方案是最简单的解决方案。