【问题标题】:Java Support for PMML对 PMML 的 Java 支持
【发布时间】:2011-11-08 23:58:37
【问题描述】:

我是 PMML 的新手:预测模型标记语言 (www.dmg.org),我想知道是否有某种 Java 支持(开源/专业)来创建/解析 PMML 文件。

最初我只考虑从 Java 环境以编程方式创建/解析 PMML 文件的可能性。

我一直在“谷歌搜索”,发现了几种可能性:

开源:

  • jpmml。 (PMML 3.2)。

来自 Java。

  • JDM。 javax.datamining。好像死了?有人知道更多信息吗?

专业。

自己动手

  • 使用 XML Java 库并为自己构建一个 PMML 文件的解析器/编写器

感谢您的所有意见。

提前致谢

奥斯卡

【问题讨论】:

  • 在这里同意 nfechner。如果是在 Java 中探索 JPMML,我会建议在更高层次上使用 jpmml 或您自己的自制工具。如果您(或您的雇主)计划在某些 IT 解决方案中使用它,那么商业图书馆可能是一个更好的主意。
  • 感谢您的留言! nfechner,我只是想要一个非正式的“民意调查”(+ 意见)来找出在 Java 环境中解析 PMML 的可能性。也就是说,使用现有库以编程方式写入读取 pmml 内容,目的是不为这个问题“重新发明轮子”。基本上,我现在会遵循 Wivani 的建议(jpmml + 一些 DIY 库)。

标签: java xml data-mining prediction pmml


【解决方案1】:

您应该意识到答案可能取决于您要使用的模型元素。您创建 PMML 和解析 PMML 的最佳选择也很可能来自不同的软件包。我将假设“创建 PMML”是指文档而不是模型。我从来没有听说过有人将自动模型拟合与执行相结合,但也许它已经存在了。当然,可以使用 SOAP 传递 PMML 模型。

我无法与其他项目交谈,但 Zementis 提供的产品 Adapa 仅用于 PMML 的执行。该产品假设有一个模型拟合应用程序,它将通过将拟合模型导出到 PMML 来进行创建。已经有很多开发良好的模型拟合应用程序,所以我认为这是一个合理的假设。

我使用的版本 (3.6) 通常速度很快,但如果没有特别大的堆,它无法处理典型随机森林大小(500 多棵树)的集合。我认为他们可能已经在较新的版本中解决了这个问题。尽管没有做广告,Zementis 似乎没有提供一些模型,即文本模型、序列、基线模型或时间序列(PMML 标准目前仅具有指数平滑)。我的版本也没有 K-Nearest Neighbors,但我听说更新的版本有。

除非您正在考虑集成装配和执行(在这种情况下您应该考虑在线学习),否则我的建议是按顺序考虑这些问题:

  1. 我有兴趣使用的模型类型是什么?
  2. 我更喜欢在哪些应用程序中构建模型?
  3. 最后我将如何执行此操作以及我在这方面有哪些要求(Web 服务、云、性能等)?

如果您查看 DMG 组的 members 列表,您会发现许多商业供应商要么在供应方(例如 SAS、SPSS、Togaware、Rapid-I),要么在需求方(这么多列出)。

在您的列表中,您也没有提到 Weka,而是提到了 they also execute some PMML models,还有 R/Java based solutions,因此您可以在 Java 环境中执行 PMML->R imports (see fileToXMLNode)(但您也可以只执行 R)。

最后,如果您心中有一个非常具体的模型,并且您理解“执行它”在数学上意味着什么,那么自己构建您需要的模型应该不会太难。

【讨论】:

    猜你喜欢
    • 2017-10-06
    • 1970-01-01
    • 2017-05-02
    • 2020-02-12
    • 1970-01-01
    • 2017-09-01
    • 2017-07-13
    • 2011-05-14
    • 2011-12-05
    相关资源
    最近更新 更多