rvw 0.6.0: First release

programming
r
Author

TheCoatlessProfessor

Published

June 29, 2019

Editor’s Note: This post has been cross-posted on Dirk Eddelbuettel’s website and on the rvw R package’s GitHub page. The post was originally written by Ivan Pavlov, who worked on the project during Google Summer of Code (GSOC) 2018.

Release Notes

Today Dirk Eddelbuettel, James Balamuta and Ivan Pavlov are happy to announce the first release of a reworked R interface to the Vowpal Wabbit machine learning system.

Started as a GSoC 2018 project, the new rvw package was built to give R users easier access to a variety of efficient machine learning algorithms. Key features that promote this idea and differentiate the new rvw from existing Vowpal Wabbit packages in R are:

  • A reworked interface that simplifies model manipulations (direct usage of CLI arguments is also available)
  • Support of the majority of Vowpal Wabbit learning algorithms and reductions
  • Extended data.frame converter covering different variations of Vowpal Wabbit input formats

Below is a simple example of how to use the renewed rvw’s interface:

library(rvw)
library(mlbench)   # for a dataset

# Basic data preparation
data("BreastCancer", package = "mlbench")
data_full <- BreastCancer
ind_train <- sample(1:nrow(data_full), 0.8*nrow(data_full))
data_full <- data_full[,-1]
data_full$Class <- ifelse(data_full$Class == "malignant", 1, -1)
data_train <- data_full[ind_train,]
data_test <- data_full[-ind_train,]

# Simple Vowpal Wabbit model for binary classification
vwmodel <-  vwsetup(dir = "./",
                    model = "mdl.vw",
                   option = "binary")

# Training 
vwtrain(vwmodel = test_vwmodel,
       data = data_train,
       passes = 10,
       targets = "Class")

# And testing
vw_output <- vwtest(vwmodel = test_vwmodel,
                    data = data_test)

More information is available in the Introduction and Examples sections of the wiki.

The rvw links directly to libvw and so initially we offer a Docker container in order to ship the most up to date package with everything needed.