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.