Java对PMML的支持

10

我对PMML(预测建模标记语言,www.dmg.org)还不熟悉,想知道是否有Java支持(开源/专业),以便创建/解析PMML文件。

起初,我只考虑从Java环境中以编程方式创建/解析PMML文件。

我已经搜索了一些可能性:

开源:

使用Java实现。

  • JDM。javax.datamining。似乎已死?有人有更多信息吗?

专业:

自己动手:

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

感谢您的所有意见。

提前致谢

Oscar


我同意nfechner的看法。在更高层面上,如果您正在探索Java中的JPMML,则建议使用jpmml或自己制作的工具。如果您(或您的雇主)计划将其用于某种IT解决方案,则商业库可能是一个更好的选择。 - Wivani
感谢您的留言!nfechner,我只是想进行一次非正式的“民意调查”(+意见),以了解在Java环境中解析PMML的可能性。也就是说,使用现有库以编程方式编写和读取pmml内容,目的是不为此问题“重新发明轮子”。基本上,我将遵循Wivani的建议(jpmml +一些自制库)暂时处理这个问题。 - Oscar
1个回答

1
你应该意识到答案可能取决于你想要处理的模型元素。创建PMML和解析PMML的最佳选项很可能来自不同的软件包。我假设“创建PMML”是指文档而不是模型。我从未听说过有人将自动模型拟合与执行集成在一起,但也许已经存在了。当然,可以使用SOAP传递PMML模型。
我不能对其他项目进行评论,但Zementis提供的产品Adapa仅用于PMML的执行。该产品假定存在一个模型拟合应用程序,通过将拟合模型导出为PMML来进行创建。已经有很多成熟的模型拟合应用程序,因此我认为这是一个合理的假设。
我所使用的版本(3.6)通常很快,但是在处理典型随机森林大小的集合(500+棵树)时无法处理,除非堆栈特别大。我认为他们可能已经在新版本中修复了这个问题。尽管没有宣传,但Zementis似乎没有提供一些模型,即文本模型、序列、基准模型或时间序列(PMML标准目前只有指数平滑)。我的版本也没有K-最近邻算法,但我听说更近期的版本有。
除非您考虑集成拟合和执行(在这种情况下,您应该考虑在线学习),否则我的建议是按照以下顺序考虑以下问题:
1. 我想使用哪种模型类型? 2. 我更喜欢在哪些应用程序中构建模型? 3. 最后,我将如何执行此操作,以及在这方面有什么要求(Web服务、云、性能等)?
如果您查看DMG组的成员列表,您会发现许多商业供应商,他们要么是供应方(例如SAS、SPSS、Togaware、Rapid-I),要么是需求方(太多了,无法列举)。
在你的列表中,你没有提到Weka,但是它们也执行一些PMML模型,并且有基于R/Java的解决方案,所以你可以在Java环境中执行PMML->R导入(请参见fileToXMLNode)(但你也可以只执行R)。
最后,如果你有一个非常具体的模型,并且你理解了它在数学上的意义,那么构建你需要的内容应该不太困难。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接