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")
<- BreastCancer
data_full <- sample(1:nrow(data_full), 0.8*nrow(data_full))
ind_train <- data_full[,-1]
data_full $Class <- ifelse(data_full$Class == "malignant", 1, -1)
data_full<- data_full[ind_train,]
data_train <- data_full[-ind_train,]
data_test
# Simple Vowpal Wabbit model for binary classification
<- vwsetup(dir = "./",
vwmodel model = "mdl.vw",
option = "binary")
# Training
vwtrain(vwmodel = test_vwmodel,
data = data_train,
passes = 10,
targets = "Class")
# And testing
<- vwtest(vwmodel = test_vwmodel,
vw_output 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.