【问题标题】:Generating PMML in Knime module在 Knime 模块中生成 PMML
【发布时间】:2014-10-27 13:53:12
【问题描述】:

我目前正在尝试为 Knime 分析平台构建模块。这将是一个生成并传递 PMML 模型作为其输出的模块。

到目前为止,我只能通过手动创建 PMMLDocument 然后创建新的 PMMLPortObject((PMMLPortObjectSpec)out_spec, pmmlDoc) 来完成此操作。

我的问题是,手动创建 pmml 文档本身是否是正确的方法,或者是否有任何其他更简化的方法可以做到这一点,可能是通过模板或类似的方法?

目前,像这样手动生成 pmml 模型:

    PMMLDocument resDoc = PMMLDocument.Factory.newInstance();
    PMML pmml = PMML.Factory.newInstance();
    pmml.setVersion("4.2");

    Header header = pmml.addNewHeader();
    header.setCopyright("some custom made copyright");
    Application application = header.addNewApplication();
    application.setName("KNIME");
    application.setVersion("2.10.3");
    ...

可能会变得非常乏味,这让我想知道这实际上在哪里是最佳实践

【问题讨论】:

  • 您是否尝试过使用pmml.addNewPMML() 方法的结果(org.dmg.pmml.PMMLDocument.PMML)? 4.2 版本的 PMML 模式已用于生成表示模型的类。
  • 嗯,这不只是PMML pmml = PMML.Factory.newInstance(); resDoc.addPMML(pmml); 的简写吗?我仍然需要自己手动创建 pmml 结构。
  • 您要添加什么样的模型? PMML 具有添加(删除、插入……)不同(PMML 4.2)模型的方法。之后,是的,您必须手动设置模型的参数,子模型。
  • 目前它只是一个简单的线性回归模型,是的,这就是我目前使用的,添加和设置来创建完整的结构。完整的代码及其结果在这里 pastebin.com/ggzeUJzR 。我想知道这是否是通常的做法。
  • 我认为这是要走的路。 (可能以更结构化的方式。我想这应该分成多种方法。)

标签: knime pmml


【解决方案1】:

是的,差不多就是这样。 PMML 标准是一个 XML 规范,因此您要做的是填写规范的所有字段。通常你会编写一个过程,为模型的每个相似的重复子部分调用,例如决策树中的一个节点。

而且,是的,在你搞定结构之前,它是相当重复的。

【讨论】:

  • 感谢大家的洞察力!
猜你喜欢
  • 2018-09-04
  • 1970-01-01
  • 2017-11-22
  • 2014-09-12
  • 2015-03-30
  • 2017-11-17
  • 2013-12-03
  • 2016-03-02
  • 2023-03-04
相关资源
最近更新 更多