This metalearner provides fitting procedures for any pairing of loss or risk function and metalearner function, subject to constraints. The optimization problem is solved by making use of the ga function in the GA R package. For further consult the documentation of this package.

Format

An R6Class object inheriting from Lrnr_base.

Value

A learner object inheriting from Lrnr_base with methods for training and prediction. For a full list of learner functionality, see the complete documentation of Lrnr_base.

Parameters

  • learner_function = metalearner_linear: A function(alpha, X) that takes a vector of covariates and a matrix of data and combines them into a vector of predictions. See metalearners for options.

  • eval_function = loss_squared_error: A function(pred, truth) that takes prediction and truth vectors and returns a loss vector or a risk scalar. See loss_functions and risk_functions for options and more detail.

  • make_sparse = TRUE: If TRUE, zeros out small alpha values.

  • convex_combination = TRUE: If TRUE, constrain alpha to sum to 1.

  • maxiter = 100: The maximum number of iterations to run before the GA search is halted.

  • run = 10: The number of consecutive generations without any improvement in the best fitness value before the GA is stopped.

  • optim = TRUE: A logical determining whether or not a local search using general-purpose optimization algorithms should be used. Argument optimArgs of ga provides further details and finer control.

  • ...: Additional arguments to ga and/or Lrnr_base.

Examples

# define ML task
data(cpp_imputed)
covs <- c("apgar1", "apgar5", "parity", "gagebrth", "mage", "meducyrs")
task <- sl3_Task$new(cpp_imputed, covariates = covs, outcome = "haz")

# build relatively fast learner library (not recommended for real analysis)
lasso_lrnr <- Lrnr_glmnet$new()
glm_lrnr <- Lrnr_glm$new()
ranger_lrnr <- Lrnr_ranger$new()
lrnrs <- c(lasso_lrnr, glm_lrnr, ranger_lrnr)
names(lrnrs) <- c("lasso", "glm", "ranger")
lrnr_stack <- make_learner(Stack, lrnrs)

# instantiate SL with GA metalearner
ga <- Lrnr_ga$new()
sl <- Lrnr_sl$new(lrnr_stack, ga)
sl_fit <- sl$train(task)