PipeOpTargetTrafo | R Documentation |
Base class for handling target transformation operations. Target transformations are different
from feature transformation because they have to be "inverted" after prediction. The
target is transformed during the training phase and information to invert this transformation
is sent along to PipeOpTargetInvert
which then inverts this transformation during the
prediction phase. This inversion may need info about both the training and the prediction data.
Users can overload up to four private$
-functions: .get_state()
(optional), .transform()
(mandatory),
.train_invert()
(optional), and .invert()
(mandatory).
Abstract R6Class
inheriting from PipeOp
.
PipeOpTargetTrafo$new(id, param_set = ps(), param_vals = list() packages = character(0), task_type_in = "Task", task_type_out = task_type_in, tags = NULL)
id
:: character(1)
Identifier of resulting object. See $id
slot of PipeOp
.
param_set
:: ParamSet
Parameter space description. This should be created by the subclass and given to
super$initialize()
.
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()
.
task_type_in
:: character(1)
The class of Task
that should be accepted as input. This
should generally be a character(1)
identifying a type of Task
, e.g. "Task"
, "TaskClassif"
or
"TaskRegr"
(or another subclass introduced by other packages). Default is "Task"
.
task_type_out
:: character(1)
The class of Task
that is produced as output. This
should generally be a character(1)
identifying a type of Task
, e.g. "Task"
, "TaskClassif"
or
"TaskRegr"
(or another subclass introduced by other packages). Default is the value of task_type_in
.
packages :: character
Set of all required packages for the PipeOp
's methods. See $packages
slot. Default is
character(0)
.
tags :: character
| NULL
Tags of the resulting PipeOp
. This is added to the tag "target transform"
. Default NULL
.
PipeOpTargetTrafo
has one input channels named "input"
taking a Task
(or whatever class
was specified by the task_type
during construction) both during training and prediction.
PipeOpTargetTrafo
has two output channels named "fun"
and "output"
. During training,
"fun"
returns NULL
and during prediction, "fun"
returns a function that can later be used
to invert the transformation done during training according to the overloaded .train_invert()
and .invert()
functions. "output"
returns the modified input Task
(or task_type
)
according to the overloaded transform()
function both during training and prediction.
The $state
is a named list
and should be returned explicitly by the user in the overloaded
.get_state()
function.
PipeOpTargetTrafo
is an abstract class inheriting from PipeOp
. It implements the
private$.train()
and private$.predict()
functions. These functions perform checks and go on
to call .get_state()
, .transform()
, .train_invert()
. .invert()
is packaged and sent along
the "fun"
output to be applied to a Prediction
by PipeOpTargetInvert
.
A subclass of PipeOpTargetTrafo
should implement these functions and be used in combination
with PipeOpTargetInvert
.
Fields inherited from PipeOp
.
Methods inherited from PipeOp
, as well as:
.get_state(task)
(Task
) -> list
Called by PipeOpTargetTrafo
's implementation of private$.train()
. Takes a single
Task
as input and returns a list
to set the $state
.
.get_state()
will be called a single time during training right before
.transform()
is called. The return value (i.e. the $state
) should contain info needed in
.transform()
as well as in .invert()
.
The base implementation returns list()
and should be overloaded if setting the state is desired.
.transform(task, phase)
(Task
, character(1)
) -> Task
Called by PipeOpTargetTrafo
's implementation of private$.train()
and
private$.predict()
. Takes a single Task
as input and modifies it.
This should typically consist of calculating a new target and modifying the
Task
by using the convert_task
function. .transform()
will be called during training and
prediction because the target (and if needed also type) of the input Task
must be transformed
both times. Note that unlike $.train()
, the argument is not a list but a singular
Task
, and the return object is also not a list but a singular Task
.
The phase
argument is "train"
during training phase and "predict"
during prediction phase
and can be used to enable different behaviour during training and prediction. When phase
is
"train"
, the $state
slot (as previously set by .get_state()
) may also be modified, alternatively
or in addition to overloading .get_state()
.
The input should not be cloned and if possible should be changed in-place.
This function is abstract and should be overloaded by inheriting classes.
.train_invert(task)
(Task
) -> any
Called by PipeOpTargetTrafo
's implementation of private$.predict()
. Takes a single
Task
as input and returns an arbitrary value that will be given as
predict_phase_state
to .invert()
. This should not modify the input Task
.
The base implementation returns a list with a single element, the $truth
column of the Task
,
and should be overloaded if a more training-phase-dependent state is desired.
.invert(prediction, predict_phase_state)
(Prediction
, any
) -> Prediction
Takes a Prediction
and a predict_phase_state
object as input and inverts the prediction. This function is sent as "fun"
to
PipeOpTargetInvert
.
This function is abstract and should be overloaded by inheriting classes. Care should be
taken that the predict_type
of the Prediction
being inverted is handled well.
.invert_help(predict_phase_state)
(predict_phase_state
object) -> function
Helper function that packages .invert()
that can later be used for the inversion.
https://mlr-org.com/pipeops.html
Other mlr3pipelines backend related:
Graph
,
PipeOp
,
PipeOpTaskPreproc
,
PipeOpTaskPreprocSimple
,
mlr_graphs
,
mlr_pipeops
,
mlr_pipeops_updatetarget
Other PipeOps:
PipeOp
,
PipeOpEnsemble
,
PipeOpImpute
,
PipeOpTaskPreproc
,
PipeOpTaskPreprocSimple
,
mlr_pipeops
,
mlr_pipeops_adas
,
mlr_pipeops_blsmote
,
mlr_pipeops_boxcox
,
mlr_pipeops_branch
,
mlr_pipeops_chunk
,
mlr_pipeops_classbalancing
,
mlr_pipeops_classifavg
,
mlr_pipeops_classweights
,
mlr_pipeops_colapply
,
mlr_pipeops_collapsefactors
,
mlr_pipeops_colroles
,
mlr_pipeops_copy
,
mlr_pipeops_datefeatures
,
mlr_pipeops_encode
,
mlr_pipeops_encodeimpact
,
mlr_pipeops_encodelmer
,
mlr_pipeops_featureunion
,
mlr_pipeops_filter
,
mlr_pipeops_fixfactors
,
mlr_pipeops_histbin
,
mlr_pipeops_ica
,
mlr_pipeops_imputeconstant
,
mlr_pipeops_imputehist
,
mlr_pipeops_imputelearner
,
mlr_pipeops_imputemean
,
mlr_pipeops_imputemedian
,
mlr_pipeops_imputemode
,
mlr_pipeops_imputeoor
,
mlr_pipeops_imputesample
,
mlr_pipeops_kernelpca
,
mlr_pipeops_learner
,
mlr_pipeops_missind
,
mlr_pipeops_modelmatrix
,
mlr_pipeops_multiplicityexply
,
mlr_pipeops_multiplicityimply
,
mlr_pipeops_mutate
,
mlr_pipeops_nmf
,
mlr_pipeops_nop
,
mlr_pipeops_ovrsplit
,
mlr_pipeops_ovrunite
,
mlr_pipeops_pca
,
mlr_pipeops_proxy
,
mlr_pipeops_quantilebin
,
mlr_pipeops_randomprojection
,
mlr_pipeops_randomresponse
,
mlr_pipeops_regravg
,
mlr_pipeops_removeconstants
,
mlr_pipeops_renamecolumns
,
mlr_pipeops_replicate
,
mlr_pipeops_rowapply
,
mlr_pipeops_scale
,
mlr_pipeops_scalemaxabs
,
mlr_pipeops_scalerange
,
mlr_pipeops_select
,
mlr_pipeops_smote
,
mlr_pipeops_smotenc
,
mlr_pipeops_spatialsign
,
mlr_pipeops_subsample
,
mlr_pipeops_targetinvert
,
mlr_pipeops_targetmutate
,
mlr_pipeops_targettrafoscalerange
,
mlr_pipeops_textvectorizer
,
mlr_pipeops_threshold
,
mlr_pipeops_tunethreshold
,
mlr_pipeops_unbranch
,
mlr_pipeops_updatetarget
,
mlr_pipeops_vtreat
,
mlr_pipeops_yeojohnson
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.