可以在 R 中读取 PMML 模型吗?

Posted

技术标签:

【中文标题】可以在 R 中读取 PMML 模型吗?【英文标题】:Can PMML models be read in R? 【发布时间】:2013-11-12 03:56:35 【问题描述】:

我有一个 PMML 文件,我正在尝试在 R 中导入/读取该文件,以基于它进行一些分析。虽然我找到了一个与 PMML 相关的package,但我找不到合适的函数来读取模型。有没有一种简单的方法可以将这种类型的文件读入 R?

谢谢,

【问题讨论】:

据我所知,这个问题的答案仍然是“这取决于您要阅读的模型类型,但没有通用的预打包解决方案”。问题是必须有人编写 XML-to-R 对象映射函数,该函数目前仅针对子类(树;partykit;关联规则,arules)完成。编写特定的 XML -> GLM 规则会很困难,但这真的能解决您的问题吗? @BenBolker 是的——我认为答案类似于“这里是您可以使用预打包解决方案的所有情况,然后这里是如何进行对象映射的示例,其中不存在预先打包的解决方案”会比这里的零碎答案要好得多。 您确实需要将已检查的解决方案切换到您授予赏金的正确答案,否则读者会错误地认为您可以从其他系统导入 PMML,而实际上您不能。 【参考方案1】:

是的,甚至还有一个 pmml 包。

看看Rdocumentation.org result for searching for pmml

【讨论】:

我认为 R PMML 包中没有 IMPORT 选项。 提供的链接只读取arules包创建的PMML模型,所以它并不适用于所有的PMML模型... 但是能够读取仅从该工具生成的 pmml 文件有什么意义。毕竟 pmml 是一个标准。重点是可互操作【参考方案2】:

很遗憾,无法导入 PMML 格式的模型以使用 R 预测某些实例的类别。

pmml 包只允许您使用train a model in R and then export it。

【讨论】:

是的,尽管 Rdocumentation 链接 Dirk Eddelbuettel 似乎允许您读取 PMML 文件 - rdocumentation.org/packages/arules/functions/pmml【参考方案3】:

目前无法通过 PMML 导入模型,除非模型是使用 arules 包创建的。该软件包的作者提供了一种导入/导出 arules 模型的方法

http://cran.r-project.org/web/packages/arules/index.html

【讨论】:

【参考方案4】:

现在有一种方法可以使用出色的“partykit”包将 PMML 对象读入 R。

我用 SPSS 中的一个节点进行了尝试,它可以工作。

这里是小插图的链接,解释如何:https://cran.r-project.org/web/packages/partykit/vignettes/constparty.pdf

【讨论】:

但这是否适用于其他类型的模型(不是树,例如线性回归)? @C8H10N4O2 我没有尝试过,但是作为一个 xml 对象,它应该也可以工作......【参考方案5】:

虽然是很久以前的事了,但还是想分享一下大家可以使用“reticulate”调用python的pypmml包在R中实现你的想法,为了更友好,让预测看起来更像R中的predict函数,我将它封装起来,封装的地址在这里“https://github.com/xianglinZ/RLoadPmml”

【讨论】:

以上是关于可以在 R 中读取 PMML 模型吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中导出时间序列模型?

将 PMML 模型导入 Python (Scikit-learn)

使用 PySpark 将模型导出为 PMML

pmml(模型标准化)

我可以在 R 中并行读取 1 个大 CSV 文件吗? [复制]

机器学习PMML简述