Thursday, May 15, 2014

Transforming R to PMML: Zementis Presentation to the Bay Area R Users Group

The Zementis team was honored to give a presentation this week (May 12) to the Bay Area R Users Group
Our talk addressed how to convert predictive models developed in R to PMML, the Predictive Model Markup Language standard. We described the pmml and pmmlTransformations packages (see details below) and discussed the benefits of doing so which include:
  • Overcoming R's memory and speed limitations 
  • Deploying predictive models built in R in minutes, not months
  • Making many predictive models operational at once
  • Using PMML multiple models element to deploy ensembles, segmentation, and chaining 
In our presentation, we also discussed how Zementis' technology not only enables models to work with RDMS and NOSQL databases but also how it enables real-time scoring against in-flight data.

R PMML Package

A PMML package for R that exports all kinds of predictive models is available directly from CRAN.
The pmml package offers support for the following data mining algorithms:
  • ksvm (kernlab): Support Vector Machines
  • nnet: Neural Networks
  • rpart: C&RT Decision Trees 
  • lm and glm (stats): Linear and Binary Logistic Regression Models 
  • arules: Association Rules
  • kmeans and hclust: Clustering Models
  • multinom (nnet): Multinomial Logistic Regression Models
  • glm (stats): Generalized Linear Models for classification and regression with a wide variety of link functions 
  • randomForest: Random Forest Models for classification and regression
  • coxph (survival): Cox Regression Models to calculate survival and stratified cumulative hazards
  • naiveBayes (e1071): Naive Bayes Classifiers
  • glmnet: Linear ElasticNet Regression Models
  • ada: Stochastic Boosting
  • svm (e1071): Support Vector Machines

The pmml package can also export data transformations built with the pmmlTransformations package (see below). It can also be used to merge two disctinct PMML files into one. For example, if transformations and model were saved into separate PMML files, it can combine both files into one, as described in Chapter 5 of the PMML book - PMML in Action.

How does it work?

Simple, once you build your model using any of the supported model types, pass the model object as an input parameter to the pmml function as shown in the figure below:

Example - sequence of R commands used to build a linear regression model using lm and the Iris dataset:


For more on the pmml package, please take a look at the paper we published in The R Journal. For that, just follow the link below:
Also, make sure to check out the package's documentation from CRAN:

2) CRAN: pmml Package

R PMML Transformations Package

This is a brand new R package. Called pmmlTranformations, this package transforms data and when used in conjunction with the pmml package, it allows for data transformations to be exported together with the predictive model in a single PMML file. Transformations currently supported include:
  • Min-max normalization
  • Z-score normalization
  • Dummy-fication of categorical variables
  • Value Mapping
  • Discretization (binning)
  • Variable renaming

If you would like to contribute code to the pmmlTransformations package, please feel free to contact us.

How does it work?

The pmmlTransformations package works in tandem with the pmml package so that data pre-processing can be represented together with the model in the resulting PMML code. 

In R, as shown in the figure below, this process includes three steps:

  1. With the use of the pmmlTransformations package, transform the raw input data as appropriate
  2. Use transformed and raw data as inputs to the modeling function/package (hclust, nnet, glm, ...)
  3. Output the entire solution (data pre-processing + model) in PMML using the pmml package

Example - sequence of R commands used to build a linear regression model using lm with transformed data


For more on the pmmlTransformations package, please take a look at the paper we wrote for the KDD 2013 PMML Workshop. For that, just follow the link below:
Also, make sure to check out the package's documentation from CRAN:

No comments:

Copyright © 2009-2014 Zementis Incorporated. All rights reserved.

Privacy - Terms Of Use - Contact Us