FOR INTERNAL USE IN MLR3ORDINAL ONLY! EXPERIMENTAL, API SUBJECT TO CHANGE

Handles target transformation operations that do not need explicit inversion. In case the new target is required during predict, creates a vector of NA. Works similar to PipeOpTargetTrafo and PipeOpTargetMutate, but forgoes the inversion step. In case target after the trafo is a factor, levels are saved to $state.

During prediction: Sets all target values to NA before calling the trafo again. In case target after the trafo is a factor, levels saved in the state are set during prediction.

As a special case when trafo is identity and new_target_name matches an existing column name of the data of the input Task, this column is set as the new target. Depending on drop_original_target the original target is then either dropped or added to the features.

Format

Abstract R6Class inheriting from PipeOp.

Construction

PipeOpUpdateTarget$new(id, param_set = ParamSet$new(),
  param_vals = list(), packages = character(0))
  • id :: character(1)
    Identifier of resulting object. See $id slot of PipeOp.

  • param_vals :: named list
    List of hyperparameter settings, overwriting the hyperparameter settings given in param_set. The subclass should have its own param_vals parameter and pass it on to super$initialize(). Default list().

Parameters

The parameters are the parameters inherited from PipeOpTargetTrafo, as well as:

  • trafo :: function
    Transformation function for the target. Should only be a function of the target, i.e., taking a single argument. Default is identity. Note, that the data passed on to the target is a data.table consisting of all target column.

  • new_target_name :: character(1)
    Optionally give the transformed target a new name. By default the original name is used.

  • new_task_type :: character(1)
    Optionally a new task type can be set. Legal types are listed in mlr_reflections$task_types$type. #' drop_original_target :: logical(1)
    Whether to drop the original target column. Default: TRUE.

State

The $state is a list of class levels for each target after trafo. list() if none of the targets have levels.

Methods

Only methods inherited from PipeOp.

See also

Examples

if (FALSE) { # Create a binary class task from iris library(mlr3) trafo_fun = function(x) {factor(ifelse(x$Species == "setosa", "setosa", "other"))} po = PipeOpUpdateTarget$new(param_vals = list(trafo = trafo_fun, new_target_name = "setosa")) po$train(list(tsk("iris"))) po$predict(list(tsk("iris"))) }