This meta-learner identifies the cross-validated selector (i.e., discrete super learner) for any loss function.

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

  • eval_function: A function that takes a vector of predictions as it's first argument, and a vector of truths/observations as it's second argument, and then returns a vector of losses or a numeric risk. See loss_functions and risk_functions for options.

Examples

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

hal_lrnr <- Lrnr_hal9001$new(
  max_degree = 1, num_knots = c(20, 10), smoothness_orders = 0
)
lasso_lrnr <- Lrnr_glmnet$new()
glm_lrnr <- Lrnr_glm$new()
ranger_lrnr <- Lrnr_ranger$new()
lrnrs <- c(hal_lrnr, lasso_lrnr, glm_lrnr, ranger_lrnr)
names(lrnrs) <- c("hal", "lasso", "glm", "ranger")
lrnr_stack <- make_learner(Stack, lrnrs)
metalrnr_discrete_MSE <- Lrnr_cv_selector$new(loss_squared_error)
discrete_sl <- Lrnr_sl$new(
  learners = lrnr_stack, metalearner = metalrnr_discrete_MSE
)
discrete_sl_fit <- discrete_sl$train(task)
discrete_sl_fit$cv_risk
#> function (eval_fun) 
#> {
#>     cv_stack_fit <- self$fit_object$cv_fit
#>     stack_risks <- cv_stack_fit$cv_risk(eval_fun)
#>     coefs <- self$coefficients
#>     if (!is.null(coefs)) {
#>         ordered_coefs <- coefs[match(stack_risks$learner, names(coefs))]
#>     }
#>     else {
#>         ordered_coefs <- rep(NA, length(stack_risks$learner))
#>     }
#>     set(stack_risks, , "coefficients", ordered_coefs)
#>     data.table::setcolorder(stack_risks, c(names(stack_risks)[1], 
#>         "coefficients"))
#>     sl_risk <- cv_risk(self, eval_fun)
#>     set(sl_risk, , "learner", "SuperLearner")
#>     risks <- rbind(stack_risks, sl_risk)
#>     return(risks)
#> }
#> <environment: 0x56131d4f1530>