R/tune.R

Defines functions tune get_tuner_fn

# tune.R
# ::rtemis::
# 2025 EDG rtemis.org

#' Get Tuner Function
#'
#' @param type Character: Type of tuner.
#'
#' @author EDG
#' @keywords internal
#' @noRd
get_tuner_fn <- function(type = "GridSearch") {
  type <- match_arg(type, c("GridSearch"))
  switch(type, "GridSearch" = "tune_GridSearch")
} # /rtemis::get_tuner_fn

#' Tune Supervised Learning Model
#'
#' @param x data.frame or similar: Training set data.
#' @param hyperparameters `Hyperparameters` object: make using each learner's `setup_*` function.
#' @param tuner_parameters `TunerParameters` object: created with [setup_GridSearch].
#' @param weights Numeric vector: Optional case weights.
#' @param verbosity Integer: Verbosity level.
#'
#' @author EDG
#' @keywords internal
#' @noRd
tune <- function(
  x,
  hyperparameters,
  tuner_parameters,
  weights = NULL,
  verbosity = 1L,
  parallel_type = "none"
) {
  check_is_S7(hyperparameters, Hyperparameters)
  check_is_S7(tuner_parameters, TunerParameters)
  stopifnot(needs_tuning(hyperparameters))
  tuner_fn <- get_tuner_fn(tuner_parameters@type)
  # do_call(
  #   fn = tuner_fn,
  #   args = list(
  #     x = x,
  #     hyperparameters = hyperparameters,
  #     tuner_parameters = tuner_parameters,
  #     weights = weights,
  #     verbosity = verbosity,
  #     parallel_type = parallel_type
  #   )
  # )
  if (tuner_parameters@type == "GridSearch") {
    tune_GridSearch(
      x = x,
      hyperparameters = hyperparameters,
      tuner_parameters = tuner_parameters,
      weights = weights,
      verbosity = verbosity,
      parallel_type = parallel_type
    )
  } else {
    stop("Unsupported tuner type: ", tuner_parameters@type)
  }
} # /rtemis::tune
egenn/rtemis documentation built on June 14, 2025, 11:54 p.m.