rsparse (version 0.3.3.2)

FTRL: Creates FTRL proximal logistic regression model.

Description

Creates 'Follow the Regularized Leader' model. Only logistic regression implemented at the moment.

Usage

FTRL

Format

R6Class object.

Fields

verbose

logical = TRUE whether to display training inforamtion

Usage

For usage details see Methods, Arguments and Examples sections.

ftrl = FTRL$new(learning_rate = 0.1, learning_rate_decay = 0.5,
lambda = 0, l1_ratio = 1, dropout = 0, family = "binomial")
ftrl$partial_fit(x, y, ...)
ftrl$predict(x, ...)
ftrl$coef()

Methods

FTRL$new(learning_rate = 0.1, learning_rate_decay = 0.5, lambda = 0, l1_ratio = 1, dropout = 0, family = "binomial")

Constructor for FTRL model. For description of arguments see Arguments section.

$partial_fit(x, y, ...)

fits/updates model given input matrix x and target vector y. x shape = (n_samples, n_features)

$predict(x, ...)

predicts output x

$coef()

return coefficients of the regression model

$dump()

create dump of the model (actually list with current model parameters)

$load(x)

load/initialize model from dump)

Arguments

ftrl

FTRL object

x

Input sparse matrix - native format is Matrix::RsparseMatrix. If x is in different format, model will try to convert it to RsparseMatrix with as(x, "RsparseMatrix") call

learning_rate

learning rate

learning_rate_decay

learning rate which controls decay. Please refer to FTRL paper for details. Usually convergense does not heavily depend on this parameter, so default value 0.5 is safe.

lambda

regularization parameter

l1_ratio

controls L1 vs L2 penalty mixing. 1 = Lasso regression, 0 = Ridge regression. Elastic net is in between.

dropout

dropout - percentage of random features to exclude from each sample. Acts as regularization.

family

a description of the error distribution and link function to be used in the model. Only binomial (or logistic regression) supported at the moment.

Examples

Run this code
# NOT RUN {
library(rsparse)
library(Matrix)
i = sample(1000, 1000 * 100, TRUE)
j = sample(1000, 1000 * 100, TRUE)
y = sample(c(0, 1), 1000, TRUE)
x = sample(c(-1, 1), 1000 * 100, TRUE)
odd = seq(1, 99, 2)
x[i %in% which(y == 1) & j %in% odd] = 1
m = sparseMatrix(i = i, j = j, x = x, dims = c(1000, 1000), giveCsparse = FALSE)
x = as(m, "RsparseMatrix")

ftrl = FTRL$new(learning_rate = 0.01, learning_rate_decay = 0.1,
lambda = 10, l1_ratio = 1, dropout = 0)
ftrl$partial_fit(x, y)

w = ftrl$coef()
head(w)
sum(w != 0)
p = ftrl$predict(m)
# }

Run the code above in your browser using DataLab