R: Creates FTRL proximal logistic regression model.

FTRL {rsparse} | R Documentation

## 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

    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)

[Package rsparse version 0.3.3.4 Index]