Java library and command-line application for converting R models to PMML.
- Fast and memory-efficient:
- Can produce a 5 GB Random Forest PMML file in less than 1 minute on a desktop PC
- Supported model and transformation types:
caret
package:preProcess
- Transformation methods "range", "center", "scale" and "medianImpute"train
- Selected JPMML-R model types
earth
package:earth
- Multivariate Adaptive Regression Spline (MARS) regression
e1071
package:svm
- Support Vector Machine (SVM) regression, classification and anomaly detection
gbm
package:gbm
- Gradient Boosting Machine (GBM) regression and classification
IsolationForest
package:iForest
- Isolation Forest (IF) anomaly detection
party
package:ctree
- Conditional Inference Tree (CIT) classification
pls
packagemvr
- Multivariate Regression (MVR) regression
randomForest
package:randomForest
- Random Forest (RF) regression and classification
ranger
package:ranger
- Random Forest regression and classification
rms
package:lrm
- Binary Logistic Regression (LR) classificationols
- Ordinary Least Squares (OLS) regression
r2pmml
package:scorecard
- Scorecard regression
stats
package:glm
- Generalized linear (GLM) regression and classificationkmeans
- K-Means clusteringlm
- Linear (LM) regression
xgboost
package:xgb.Booster
- XGBoost (XGB) regression and classification
- Production quality:
- Complete test coverage.
- Fully compliant with the JPMML-Evaluator library.
- Java 1.7 or newer.
Enter the project root directory and build using Apache Maven:
mvn clean install
The build produces an executable uber-JAR file target/converter-executable-1.2-SNAPSHOT.jar
.
A typical workflow can be summarized as follows:
- Use R to train a model.
- Serialize the model in RDS data format to a file in a local filesystem.
- Use the JPMML-R command-line converter application to turn the RDS file to a PMML file.
The following R script trains a Random Forest (RF) model and saves it in RDS data format to a file rf.rds
:
library("randomForest")
rf = randomForest(Species ~ ., data = iris)
saveRDS(rf, "rf.rds")
Converting the RDS file rf.rds
to a PMML file rf.pmml
:
java -jar target/converter-executable-1.2-SNAPSHOT.jar --rds-input rf.rds --pmml-output rf.pmml
Getting help:
java -jar target/converter-executable-1.2-SNAPSHOT.jar --help
The conversion of large files (1 GB and beyond) can be sped up by increasing the JVM heap size using -Xms
and -Xmx
options:
java -Xms4G -Xmx8G -jar target/converter-executable-1.2-SNAPSHOT.jar --rds-input rf.rds --pmml-output rf.pmml
JPMML-R is licensed under the GNU Affero General Public License (AGPL) version 3.0. Other licenses are available on request.
Please contact info@openscoring.io