可以在 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 模型吗?的主要内容,如果未能解决你的问题,请参考以下文章
将 PMML 模型导入 Python (Scikit-learn)