| FTRL {rsparse} | R Documentation |
Creates 'Follow the Regularized Leader' model. Only logistic regression implemented at the moment.
FTRL
R6Class object.
verboselogical = TRUE whether to display training inforamtion
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()
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)
FTRL object
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 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.
regularization parameter
controls L1 vs L2 penalty mixing. 1 = Lasso regression, 0 = Ridge regression. Elastic net is in between.
dropout - percentage of random features to exclude from each sample. Acts as regularization.
a description of the error distribution and link function to be used in the model.
Only binomial (or logistic regression) supported at the moment.
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)