Skip to content
R package for online training of regression models using FTRL Proximal
R C Makefile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
R
man
src
tests
.Rbuildignore
.gitignore
.travis.yml
DESCRIPTION
LICENSE
Makefile
NAMESPACE
README.md

README.md

FTRL Proximal

Build Status codecov CRAN_Status_Badge CRAN Downloads

This is an R package of the FTRL Proximal algorithm for online learning of elastic net logistic regression models.

For more info on the algorithm please see Ad Click Prediction: a View from the Trenches by McMahan et al. (2013).

Installation

Easiest way to install is from within R using the latest CRAN version:

install.packages("FTRLProximal")

If you want the latest build from git you can install it directly from github using devtools:

devtools::install_github("while/FTRLProximal")

Usage

Simplest use case is to use the model similar to normal glm with a model formula.

# Set up dataset
p <- mlbench::mlbench.2dnormals(100,2)
dat <- as.data.frame(p)

# Train model
mdl <- ftrlprox(classes ~ ., dat, lambda = 1e-2, alpha = 1, a = 0.3)

# Print resulting coeffs
print(mdl)

It is also possible to update the trained model object once it is trained.

# Set up first dataset
p <- mlbench.2dnormals(100,2)
dat <- as.data.frame(p)

# Convert data.frame to model.matrix
X <- model.matrix(classes ~ ., dat)

# Train on first dataset
mdl <- ftrlprox(X, dat$classes, lambda = 1e-2, alpha = 1, a = 0.3)

# Generate more of the same data after the first training session
p <- mlbench.2dnormals(100,2)
dat <- as.data.frame(p)

# Update model using the new data.
mdl <- update(mdl, X, dat$classes)

For more example please see the documentation.

Changelog

0.3

  • Added prediction type "class".

0.2

  • Changed from using explicit lambda1 and lambda2 parameters to using lambda and mixing parameter alpha.
You can’t perform that action at this time.