综述
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
许多数据工程师或者数据分析师都习惯使用R进行数据挖掘和建模分析。
本文介绍了如何将R中的模型导出为PMML文件,方便后续的工程上线操作,内容包括涉及环境的搭建和中间遇到的坑。
本文介绍的三种方式,各自支持的机器学习模型种类不完全一致,文中附有官方文档链接,模型支持程度请查阅官方文档。
前置知识
- R 基本操作
- Maven 基本操作
- Java 命令基本操作
R2PMML
这是一个R的包,用于将R中训练好的模型导出为PMML。github链接
软件版本
- Java 1.7 或者更新
- R 3.5.0
安装
使用devtools 从github的分支安装。代码如下:
1 | install.packages("devtools") |
注
因为某些不可描述的原因,可能出现网站访问的问题,请灵活使用科学上网手段。
博主自己测试的时候,耗时在3min 左右。
基本用法(只有模型部分)
载入该包,然后调用保存模型即可,代码如下:
1 | library("randomForest") |
添加预处理过程
数据在进入模型前,可以先进行预处理,一线简单的预处理操作也可以定义在PMML中,R代码如下:
1 | library("caret") |
PMML包
R 中也支持了自带的PMML包,在最近的一次更新(2018.07.06)中,增加了支持模型的数量。
软件版本
- R 3.5.0
安装过程
需要用到的包有:XML PMML 需要提前安装,命令如下:
1 | install.packages(“XML”) |
选择镜像之后,等几分钟就行了。
使用
训练模型,和上面一致
1 | library("randomForest") |
将模型转为pmml之后,导出为pmml格式
1 | library("pmml") |
JPMML-R
上面两种方式,都是在R中,直接将模型导出为PMML。还可以将R的模型存为rds文件之后,调用Java 的方式安装。
软件版本
- Java 1.8 或者更新
- R 3.5.0
安装
在github 下载相关源码之后,编译
1 | git clone git@github.com:jpmml/jpmml-r.git |
在 target 目录下会生成converter-executable-1.3-SNAPSHOT.jar 文件。
R中生成rds文件
将训练好的模型保存为rds,代码如下:
1 | library("randomForest") |
将rds文件转为pmml文件
1 | java -jar target/converter-executable-1.3-SNAPSHOT.jar --rds-input rf.rds --pmml-output rf.pmml |
总结
本文介绍了三种不同的方式,将R中训练好的模型导出为pmml文件。3种方式支持的模型不完全一致,比如 R2PMML 不支持glmnet,需要存glmnet的模型时,可以使用另外的方式。