【发布时间】: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 。我想知道这是否是通常的做法。
-
我认为这是要走的路。 (可能以更结构化的方式。我想这应该分成多种方法。)